СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 25 № 2903

Опишите на языке программирования алгоритм подсчета максимального количества подряд идущих элементов, каждый из которых больше предыдущего, в целочисленном массиве длины 30.

Решение.

Решение на Паскале.

 

const N = 30;

var

a: array [1..N] of integer;

MaxIncr, NumIncr, i: integer;

begin

for i := 1 to N do readln(a[i]);

MaxIncr: =1;

NumIncr: =1;

for i: =1 to N-1 do

if (a[i] < a [i+1]) then NumIncr: =NumIncr+1 else

begin

if (NumIncr > MaxIncr) then MaxIncr: =NumIncr;

NumIncr: =1;

end;

if (NumIncr > MaxIncr) then MaxIncr:=NumIncr;

writeln (MaxIncr);

end.

Спрятать решение · ·
Иван Купалов (Красноярск) 20.03.2013 17:49

Решение на Си.

 

#include <stdio.h>

#define N 30

 

int main() {

int arr[N];

int max, num,i;

max = 0;

num = 1;

for (i=0; i<N; i++) {

scanf("%d", &arr[i]); }

for (i = 1; i < N+1; i++) {

if ((arr[i]-arr[i-1]) == 1) num++;

else if (num > max) {max = num; num = 1;}

}

printf("\n%d", max);

return 0;

}

Alexander Tischenko

У Вас указано неточное решение, следующее число может быть больше предыдущего не обязательно на 1.

Александр Мордвинов 13.02.2015 19:54

Предлагаю свой вариант.

 

const

n=30;

var

a:array[1..n] of integer;

i,b,max : integer;

BEGIN

for i:=1 to n do

begin

a[i]:=random(20);

write(a[i],' ')

end;

max:=1;

b:=1;

for i:=1 to n-1 do

begin

if a[i] < a[i+1] then inc(b) else b:=1;

if b > max then max:=b;

end;

writeln(max)

END.