Array27. Дан массив ненулевых целых чисел размера $$N$$. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести $$0$$, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program Array27; var a:array[1..10] of integer; N,i:Integer; temp:boolean; begin Write('N: '); Readln(N); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; Temp:=(a[1]>0); i:=2; while (i<=N) and (temp <> (a[i]>0)) do begin temp:= (a[i]>0); inc(i); end; if i=N+1 then Writeln('0') else Writeln(i); end. |
Другие задачи из раздела Array можно посмотреть здесь.
Сейчас как результат вместо 0 показывает a[1]*a[2]
Даже не стал разбираться. Т.к. for по разному себя ведёт, в зависимости от компилятора. Решил с помощью while.
Было:
Стало: