Дан целочисленный массив размера n. преобразовать массив, увеличив его последнюю серию наибольшей длины на один элемент. паскаль
243
386
Ответы на вопрос:
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
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.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
manerov6829.07.2022 06:55
-
snitkovskayalena27.05.2023 20:29
-
26011109200730.06.2023 14:12
-
vovadavydov5628.06.2020 17:39
-
Zhanaevakasiet08.12.2022 07:52
-
katya04141102.02.2020 17:26
-
severin456812.02.2023 03:08
-
МаксЭндер27.05.2021 15:51
-
karinaeruslanov28.03.2021 22:59
-
wildforme08.12.2020 14:26
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.