• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Задача на числа

mariicka

Ученик
Регистрация
19 Май 2015
Сообщения
5
Реакции
0
Баллы
0
Задача на числа

Помогите пожалуйста с задачей. Вот что у меня вышло, но тут что то не
сходится.
Program 286;
Var a,c: Array[1..99] Of Integer;
q,i,max :Integer;
Begin
Randomize;
q:=99;
For i:=1 To q Do
a:=1+Random(100);
For i:=1 To q Do
Writeln(a,' ');
max:=a[1];
For i:=2 To q Do
If a>max Then max:=a;
Writeln('max=',max);
Readln;
Writeln(c,' ');
FOR i:=2 to q do
if a<> max then
Writeln( a, ' ');
End.
 
Код:
program a;

const A_SIZE=99;

Var src,dst: Array[1..A_SIZE] Of Integer;
i,j,max :Integer;

begin
Randomize;
{* Заполняем массив *}
For i:=1 To A_SIZE Do  src[i]:=1+Random(100);
{* выводим массив *}
For i:=1 To A_SIZE Do  Write(src[i],' ');
Writeln;
max:=0;
{* ищем максимальный элемент *}
For i:=1 To A_SIZE Do
  If src[i]>max Then  max:=src[i];

Writeln('max=',max);
Readln;
j:=1; {* счетчик для массива dst *}
FOR i:=1 to A_SIZE do
    if src[i]<> max then
      begin
      dst[j]:=src[i];
      j:=j+1;
      end;

{* выводим массив результата*}
FOR i:=1 to j-1 do
  Write( dst[i], ' ');
Writeln;
Readln;
end.
 
Помогите пожалуйста с задачей. Вот что у меня вышло, но тут что то не сходится.
Можно и так, как предлагает MagentaTiger, но я просто несколько "причесал" Вашу программу, исправив несколько моментов:
1. Writeln(a,' '); Ну зачем же выводить числа с переводом строки?! Начало массива неизбежно уходит далеко за верхний край экрана. Да и пробел в этом случае абсолютно бессмыслен. Кроме того, аккуратнее выглядит, если использовать форматный вывод.
2. Массив c вообще не сформирован! Что толку его выводить?
Код:
Program QP286;
Var
 a,c: Array[1..99] Of Integer;
 q,p,i,max :Integer;
Begin
 Randomize;
 q:=99;
 For i:=1 To q Do
  a[i]:=1+Random(100);
 For i:=1 To q Do
  Write(a[i]:4);
 Writeln;
 Writeln;
 max:=a[1];
 For i:=2 To q Do
  If a[i]>max Then max:=a[i];
 Writeln('max = ',max);
 Writeln;
 p:=0;
 FOR i:=1 to q do
  if a[i]<max then
   begin
    p:=p+1;
    c[p]:=a[i];
   end;
 For i:=1 to p do
  Write(c[i]:4);
 Readln
End.
 
Назад
Сверху