Помощь - Поиск - Пользователи - Календарь
Полная версия: минимальные элементы массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Spaun
Подскажите пожалуйста, как со всего масива вывести 2 минимальных значения при условии того что значения задаются рэндомом
ЗЫ да забыл при этом их не сортируя. Заранее очень благодарен.
 
Program nomer1;
const N=10;
var
mas:array[1..N]of integer;
i,min: integer;
begin
randomize;
for i:=1 to N do
begin
mas[i]:=random(108)+1900;
write(mas[i], '|');
end;
writeln;
min:=mas[i];
for i:=2 to N do
if mas[i] < min then
begin
min:= mas [i];
writeln (min)
end;
end.


вроде так но чегото не получается.... помогите..
Vinsent90
Может так smile.gif
Program nomer1;
uses crt;
const N=10;
var
mas:array[1..N] of integer;
i,min1,min2: integer;
begin
randomize;
for i:=1 to N do
begin
mas[i]:=random(108)+1900;
write(mas[i], '|');
end;
writeln;
min1:=mas[i];
for i:=1 to N do
if mas[i] < min1 then
begin
min1:= mas [i];
end;
min2:=mas[i];
for i:=1 to N do
if (mas[i]<min2) and (mas[i] >min1) then
begin
min2:= mas [i];
end;
writeln ('min1 = ',min1);
writeln ('min2 = ',min2);
readkey;
clrscr;
end.

Spaun
Цитата(Vinsent90)
Может так smile.gif

да возможно но программа зацикливается...
спасибо что ответил но я уже нашел другой способ:

Program nomer1;
uses crt;
const N=10;
var
mas:array[1..N]of integer;
i,min,j,k,rab: integer;
begin
randomize;
for i:=1 to N do
begin
mas[i]:=random(108)+1900;
end;for i:=1 to n do
write (mas[i], '|');
for j:=1 to n-1 do
for i:=1 to n-1 do
if mas[i]>mas[i+1] then
begin
rab:=mas[i+1];
mas[i+1]:=mas[i];
mas[i]:=rab;
for k:=1 to n do
end;
writeln;
writeln ('1 ', mas[1]);
writeln ('2 ', mas[2]);
end.


Client
Цитата
да возможно но программа зацикливается...
Интересно... Покажи на каком примере зацикливается
Цитата
при этом их не сортируя
if mas[i]>mas[i+1] then... // а вот тут что?
Spaun
За
Цитата
без сортировки
извиняюсь.
То что прога зацикливается это факт... могу скинуть фото.
а в том варианте что предложил Vinsent90 не всегда точно выводиться значение... есть фото...

Client
Цитата
могу скинуть фото
Давай
compiler
Цитата(Spaun @ 4.06.2008 19:58) *
То что прога зацикливается это факт... могу скинуть фото.
а в том варианте что предложил Vinsent90 не всегда точно выводиться значение... есть фото...
Ну.. зацикливание это приувеличинно.. Есть readkey, а как с ним поступать в ABC и как осуществляется операция ввода я не знаю, и эти вопросы сдесь, как я понимаю, не обсуждаются.. Просто убери его... Насчет ошибок в нахождении минимума, есть такой грешок, все кроется в троке min2:=mas[i]; , где присваивание происходит без проверки.. Да и вообще вышеупомянутая строка может начудить и не такое с НЕинициализированым i.
и еще, говорят, не плохо приводить тип результата от random
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.