Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Задача на числа (http://www.tehnari.ru/f41/t102599/)

mariicka 20.05.2015 00:05

Задача на числа
 
Вложений: 1
Помогите пожалуйста с задачей. Вот что у меня вышло, но тут что то не
сходится.
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[i]:=1+Random(100);
For i:=1 To q Do
Writeln(a[i],' ');
max:=a[1];
For i:=2 To q Do
If a[i]>max Then max:=a[i];
Writeln('max=',max);
Readln;
Writeln(c[i],' ');
FOR i:=2 to q do
if a[i]<> max then
Writeln( a[i], ' ');
End.

MagentaTiger 20.05.2015 00:54

Код:

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.


Vladimir_S 20.05.2015 10:28

Цитата:

Сообщение от mariicka (Сообщение 1132237)
Помогите пожалуйста с задачей. Вот что у меня вышло, но тут что то не сходится.

Можно и так, как предлагает MagentaTiger, но я просто несколько "причесал" Вашу программу, исправив несколько моментов:
1. Writeln(a[i],' '); Ну зачем же выводить числа с переводом строки?! Начало массива неизбежно уходит далеко за верхний край экрана. Да и пробел в этом случае абсолютно бессмыслен. Кроме того, аккуратнее выглядит, если использовать форматный вывод.
2. Массив c[i] вообще не сформирован! Что толку его выводить?
Код:

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.



Часовой пояс GMT +4, время: 22:03.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.