В заданном одномерном массиве найти наименьшее из нечётных чисел, найти ошибку - Pascal
Формулировка задачи:
Условие
В заданном одномерном массиве N<=40 найти наименьшее из нечётных чисел .
Вот моя программа ,но она не правильно работает.Помогите если не сложно)
program lis;
var
i, x, y: integer;s: array [1..40] of integer;
min: real;
begin
for i := 1 to 10 do
read(s[i]);
for i := 1 to 10 do
if s[i] mod 2 = 0 then
begin
min := s[1];
if s[i] < min then
min := s[i];
writeln('наименьшее нечётное число', ' ',min);
end;
end.Решение задачи: «В заданном одномерном массиве найти наименьшее из нечётных чисел, найти ошибку»
textual
Листинг программы
const n=40;
var s: array [1..n] of integer;
i,k,min: integer;
begin
randomize;
k:=0;
for i := 1 to n do
begin
s[i]:=-10+random(50);
write(s[i]:4);
if odd(s[i]) then
begin
if k=0 then
begin
min:=s[i];
k:=1;
end
else if s[i]<min then min:=s[i];
end;
end;
writeln;
if k=0 then write('В массиве нет нечетных элементов')
else write('Минимальный нечетный=',min);
end.
Объяснение кода листинга программы
- Объявляется константа
nсо значением 40. - Объявляется массив
sцелых чисел от 1 до n. - Объявляются переменные
i,kиminс целочисленным типом. - Инициализируется генератор случайных чисел.
- Устанавливается начальное значение переменной
kкак 0. - В цикле от 1 до n заполняется массив
sслучайными числами в диапазоне от -10 до 40 и выводятся на экран. - Проверяется каждый элемент массива на нечетность.
- Если нечетное число встречается в массиве:
- Если
kравно 0, то текущий элемент становится минимальным:minпринимает значение текущего элемента, аkстановится 1. - Иначе, если текущий элемент меньше
min,minпринимает значение текущего элемента.
- Если
- После завершения цикла проверяется значение
k. - Если
kравно 0, выводится сообщениеВ массиве нет нечетных элементов. - Иначе выводится сообщение
Минимальный нечетный=минимальное_нечетное_число. Итак, в данном коде находится минимальное нечётное число в заданном массиве чисел.