Другие языки программирования и технологии

Простая школьная задача в PascalABC

PascalABC. Напишите программу, которая запрашивает количество элементов линейного массива действительных чисел (не больше 25), затем сами элементы массива, затем выводит на экран введённый массив (на одной строке) и на следующей строке два его наименьших члена (одинаковые члены игнорируются - то есть из массива 3 2 1 1 будут выведены числа 1 и 2). Если таких членов в массиве нет, программа сообщает об этом. Отработав, программа должна спросить, не хочет ли пользователь повторить операцию.
const
N = 25;

var
_n: integer;
a: array[1..N]of integer;
i, j: integer;
min: integer;
tmp: integer;
_continue: char;

begin
_continue := 'y';
while _continue <> 'n' do
begin
write('Введите количество элементов массива:');
readln(_n);

if (2 <= _n) and (_n <= N) then
begin
writeln('Введите элементы массива:');
for i := 1 to _n do
begin
readln(A[i]);
end;

writeln('Элементы массива:');
for i := 1 to _n do
begin
write(A[i], ' ');
end;

for i := 1 to _n do
begin
min := A[i];
for j := i + 1 to _n do
begin
if A[j] < min then
begin
tmp := A[i];
A[i] := A[j];
A[j] := tmp;
end;
end;
end;

end
else
writeln('Ошибка! Количество элементов массива должно быть болше 1 и не более 25.');
writeln;
if A[1] <> A[2] then
writeln('Два наименьших элемента массива:', A[1], ' ', A[2])
else
writeln('Наименьшие элементы совпадают.');
write('Продолжить? y/n:');
readln(_continue);
end;
end.
RA
Rasim Amir
11 953
Лучший ответ
Арман Жубанчалиев Программа должна вывести эти элементы, а не сказать, что они одинаковы
Вау! Сколько букв?

Решение максимум на две строки кода!
program Massiv;
var M: array [1..25] of integer;
i,n,min, max: integer;
Ans: byte;
begin
repeat
writeln('Введите кол-во элементов:');
readln(n);
writeln ('Введите элементы массива 1-', n,':');
for i:=1 to n do
read (M[i]);
writeln();
for i:=1 to n do
write(M[i],' ');
writeln();
min:=M[1];
max:=M[1];
for i:=2 to n do
begin
if M[i]>max then max:=M[i];
if M[i]<min then min:=M[i];
end;
if (min = max) then
writeln ('Нет минимального и максимального элемента.')
else
writeln ('Минимальное ч. ', min, ', максимальное ч. ', max);
writeln ('Повторить? 1 - Да, 0 - Нет');
readln (Ans);
until (Ans <> 1)
end.
Jigit Jonokoi
Jigit Jonokoi
1 985
Арман Жубанчалиев Надо указать два наименьших числа, а не наименьшее и наибольшее
Jigit Jonokoi program Massiv;

var
M: array [1..25] of integer;
i, n, min1, min2, max: integer;
Ans: byte;

begin
repeat
writeln('Введите кол-во элементов:');
readln(n);
writeln('Введите элементы массива 1-', n, ':');
for i := 1 to n do
read(M[i]);
writeln();
for i := 1 to n do
write(M[i], ' ');
writeln();
min1 := M[1];
max := M[1];
for i := 2 to n do
begin
if M[i] > max then max := M[i];
if M[i] < min1 then min1 := M[i];
end;
min2 := max;
for i := 1 to n do
if (M[i] < min2) and (M[i] <> min1) then
min2 := M[i];
if (min1 = min2) then
writeln('Все числа равны.')
else
writeln('Мин. 1 = ', min1, ', мин. 2 = ', min2);
writeln('Повторить? 1 - Да, 0 - Нет');
readln(Ans);
until (Ans <> 1)
end.
program Test;
uses crt;
const
N = 10;
var
mas: array [1..25] of integer;
i,j,size,a,ask,k:integer;
begin
repeat
write('Введите размер массива: ');
readln(size);
writeln('');
if size > 25 then
begin
writeln('Вы ввели размер массива, больше возможного!');
exit;
end;
clrscr;
for i:=1 to size do
begin
write('Введите ',i,'-ый элемент массива: ');
read(mas[i]);
clrscr;
end;
write('Все элементы массива: ');
for i:=1 to size do
begin
write(mas[i], ' ');
end;
writeln('');
for i:=1 to size-1 do
for j:=1 to size-i do
if mas[j] > mas[j+1] then
begin
a:= mas[j];
mas[j]:= mas[j+1];
mas[j+1]:= a;
end;
write('Отсортированный массив: ');
for i:=1 to size do
write(mas[i],' ');
for i:=1 to size do
if mas[i] = mas[i+1] then
begin
mas[i]:= 0;
k:= i+1;
end;
writeln('');
writeln('Первый наименьший элемент массива - ',mas[k],'. Второй наименьший элемент массива - ',mas[k+1]);
write('Повторить? -Да (1), -Нет (0): ');
readln(ask);
clrscr;
until (ask <> 1)
end.
Гасан Агаев
Гасан Агаев
1 599
Арман Жубанчалиев не правильно работает программа, при вводе массива 1 1 2 3 выдаёт 1 1
зачем ты всех скрыл?
Они дали верные ответы
Арман Жубанчалиев Нет, никакой из них не соответствовал условию задачи
1111
MN
Musiev Nurtas
122