Другие языки программирования и технологии

Помогите, пожалуйста, с алгоритмом для проги.

Нужно определить длину максимальной возрастающей по длине последовательности целых подряд идущих случайных чисел. Те, например, в последовательности 3 4 6 7 5 2 7 0 ответ будет 4, тк тут последовательность будет 3 4 6 7. Не получается составить алгоритм для проги, помогите, пожалуйста
Не через массивы, если что
Mishel Slavin
Mishel Slavin
89
С Новым 2016 годом!

$ cat maxacc.c
#include <stdio.h>
#include <limits.h>
int
main ()
{
int npred = INT_MIN, ncur, count = 0, maxcount = 0;
while (scanf ("%d", &ncur) != EOF) {
  if (ncur > npred) count++;
  else {
    if (count > maxcount) maxcount = count;
    count = 0;
  }
  npred = ncur;
}
printf ("%d\n", maxcount);
return 0;
}
$ make maxacc
cc maxacc.c -o maxacc
$ echo 3 4 6 7 5 2 7 0 | ./maxacc
4
Алексей Анисимов
Алексей Анисимов
64 212
Лучший ответ
Условие ужасно сформулировано. Не "возрастающей по длине последовательности", а "максимальной длины подпоследовательности возрастающих по величине чисел". И строго или не строго возрастающей?
Сделаю для строго, в двух вариантах.

Для ввода чисел с клавиатуры:

program mlp1;
var i,k,m,n,a,b:integer;
begin
k:=1; m:=1; write('n: '); readln(n); writeln('Enter ',n,' numbers:'); read(a);
for i:=2 to n do
begin read(b); if b>a then k:=k+1 else k:=1; if k>m then m:=k; a:=b end;
readln; writeln(m); readln
end.

Для псевдослучайных чисел, генерируемых программой:

program mlp2;
var i,k,m,n,a,b:integer;
begin
k:=1; m:=1; write('n: '); readln(n); randomize;
a:=-99+random(199); write(a:4);
for i:=2 to n do
begin
b:=-99+random(199); write(b:4);
if b>a then k:=k+1 else k:=1; if k>m then m:=k; a:=b
end;
writeln; writeln('m=',m); readln
end.
ЛЗ
Лёха Зозуля
80 308
еще проще чем через массивы...

Похожие вопросы