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

Дан целочисленный массив размера N. Преобразовать массив, увеличив его последнюю серию наибольшей длины на один элемент. Паскаль
Гость
Ответ(ы) на вопрос:
Гость
program Array129; var a: array [1..40] of integer; B: array [1..20] of integer; C: array [1..20] of integer; temp,M,N,i,j:integer; begin writeln('Введите N (N<=20)'); readln(N); writeln('Значения массива А'); for i:=1 to n do begin write('a[',i,']=');readln(A[i]); B[i]:=i; end; // решение  temp:=0; m:=0; // формируем из исходного массива A[] два с длиной серий B[] и значением серий C[]  for i:=2 to n do begin inc(temp); if a[i]<>a[i-1] then begin inc(M); B[M]:=temp; C[M]:=a[i-1]; temp:=0; end; end; inc(temp); inc(M); b[M]:=temp; C[M]:=a[i]; // складываем массив A[] согласно задания.  temp:=1; for i:=1 to m do begin if b[i]>=b[temp] then begin temp:=i; end; end; inc(b[temp]); temp:=0; for i:=1 to m do begin for j:=1 to b[i] do begin inc(temp); a[temp]:=c[i]; end; end; Writeln; Writeln('Ответ'); Write(' A[]: '); for i:=1 to temp do Write(A[i],' '); end.
Гость
type   V = array of integer; var   i, n, ic, nc, kc, imax, nmax, kmax: integer;   a: V; begin   write('Введите количество чисел N ');   readln(n);   SetLength(a, n + 1);   writeln('Вводите числа');   for i := 0 to n - 1 do read(a[i]);   writeln;   nmax := -32768;   kmax := 0;   imax := 0;   nc := a[0];   kc := 1;   ic := 1;   for i := 1 to n - 1 do   begin     if a[i] = nc then kc := kc + 1     else begin       if kc < 3 then begin         kc := 1;         nc := a[i];         ic := i       end       else       if kmax <= kc then begin         kmax := kc;         nmax := nc;         imax := ic;         kc:=1;         nc:=a[i];         ic:=i       end       else begin         kc := 1;         nc := a[i];         ic := i       end     end   end;   if kmax <= kc then begin     kmax := kc;     nmax := nc;     imax := ic   end;   writeln('Самая длинная серия содержит ', kmax, ' чисел ', nmax);   for i:=n downto imax+kmax+1 do a[i]:=a[i-1];   a[imax+kmax]:=nmax;   writeln('Модифицированная строка');   for i:=0 to n do write(a[i]:2) end. Тестовое решение Введите количество чисел N 30 Вводите числа 1 2 2 3 4 4 4 5 5 5 6 8 6 6 6 4 8 8 8 8 8 8 3 3 3 3 1 2 3 3 3 Самая длинная серия содержит 6 чисел 8 Модифицированная строка  1 2 2 3 4 4 4 5 5 5 6 8 6 6 6 4 8 8 8 8 8 8 8 3 3 3 3 1 2 3 3
Не нашли ответ?
Ответить на вопрос
Похожие вопросы