
Вопрос задан 21.04.2021 в 19:00.
Предмет Информатика.
Спрашивает Козлов Алексей.
Помогите решить задачу в паскаль!!! Последовательность состоит из натуральных чисел и завершается
числом 0. Всего вводится не более 10000 чисел (не считая завершающего числа 0). Определите, сколько элементов этой последовательности равны ее наибольшему элементу.Числа, следующие за числом 0, считывать не нужно.у меня есть такой вариант но нужен еще один readln(a);beginif a > 0 thenif (max = 0) or (a > max) thenbegin max := a;k := 1 endelse if a = max then inc(k);end;until a=0;write(k);end.

Ответы на вопрос

Отвечает Унанян Тигран.
Var t,i,x,max:integer;
begin
max:=0;t:=0;
repeat
begin
x:=0;
read(x);
if (x>0) and (x=max) then i:=i+1;
if x>max then
begin
max:=x;
i:=1;
end;
t:=t+1;
end;
until (x<=0) or (t>=1000) or (x mod 1>0);
if (x<0) or (x mod 1>0) then begin i:=-1; writeln('Нельзя вводить ненатуральные числа');end;
if i=0 then writeln('Введён только ноль');
if i>0 then writeln('Чисел, равных максимуму: ', i);
end.
begin
max:=0;t:=0;
repeat
begin
x:=0;
read(x);
if (x>0) and (x=max) then i:=i+1;
if x>max then
begin
max:=x;
i:=1;
end;
t:=t+1;
end;
until (x<=0) or (t>=1000) or (x mod 1>0);
if (x<0) or (x mod 1>0) then begin i:=-1; writeln('Нельзя вводить ненатуральные числа');end;
if i=0 then writeln('Введён только ноль');
if i>0 then writeln('Чисел, равных максимуму: ', i);
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ваш код выглядит близко к решению задачи, но нужно внести некоторые изменения.
Сначала вам нужно объявить две переменные: одну для хранения текущего максимума (max
), а вторую для хранения количества элементов, равных максимуму (count
).
Ваш цикл должен продолжаться до тех пор, пока вы не введете 0. В каждой итерации цикла вы должны проверять, является ли введенное число больше, чем текущий максимум. Если это так, то обновите текущий максимум и сбросьте количество элементов, равных максимуму, до 1. Если введенное число равно текущему максимуму, то увеличьте количество элементов, равных максимуму, на 1.
После того, как вы завершите ввод, вы должны вывести количество элементов, равных максимуму.
Вот код, который решает задачу:
cssvar
a, max, count: integer;
begin
count := 0;
max := 0;
repeat
readln(a);
if a > max then
begin
max := a;
count := 1;
end
else if a = max then
count := count + 1;
until a = 0;
write(count);
end.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili