Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Определить позицию первого и последнего нуля в одн


Автор: MikhailDmitren 16.5.2013, 19:52
Определить позицию первого и последнего нуля в одномерном массиве, использую цикл For. Например массив состоит из 10307, программа в ответе должна выдать, что первый ноль стоит на второй позиции, а последний ноль стоит на четвертой позиции.
Помогите плиз решить задачу.

Автор: bsa 16.5.2013, 20:21
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Albor 17.5.2013, 08:09
алгоритм find вам поможет

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51950f336ccc198774000002#findElement_E7045_5195bb966ccc196e24002cb9_0

Автор: MikhailDmitren 20.5.2013, 20:31
Код

#include <vcl.h>
#include <iostream>
using namespace std;
int main()
{int m[5], first=-1, last=-1;
for(int i=0; i<5; i++)
{cout<<"vvedite el\n";
cin>>m[i];
}

for(int k=0; k<5; k++)
{if(m[k]==0)
{if (first<0) first=k;
last=k;
}
}


if (last>0) printf ("\nFirst null in %d position, last null in %d position",first,last);
else printf ("\nNot found");

int end;
cin>>end;
return 0;
}


Программа работает, но вот если набираем допустим массив 10307, должно показать, что первый ноль на второй позиции, а последний ноль на четвертой позиции, но показывает, что первый ноль на первой позиции, а последний ноль на третей позиции. Помогите пожалуйста исправить ошибку.

Автор: Mirkes 24.5.2013, 21:17
Известная проблема - все нормальные люди считают 1, 2, 3, ..., а вот программисты читают 0, 1, 2, ...
Так что каждый программист должен помнить, что пользователь - нормальный человек и при выводе позиций добавлять к ним 1!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)