Ответы

Помогите с массивами

1) в массиве целых чисел найти минимальное число, строго большее числа A, или вывести НЕТ, если такого нет ( O(n) )

нужен алгоритм

По дате
По рейтингу
Аватар пользователя
Знаток
15лет

1.задаем А.
2.задаетм м= первый эллемент массива
3.перебираем массив и сравниваем его элементы с м, если найдется элемент меньше м и больше А, то м=найденный элемент
4.в конце сравниваем м с А, если м больше А, то вывод м, если м меньше или ровно А, то вывести НЕТ

Аватар пользователя
15лет

1. Просматриваем весь массив с начала и смотрим есть ли хоть один элемент больше А, если есть, то этот элемент становится временным min

2. Просматриваем весь массив с начала и сравниваем элементы с временным min и А.

Const N = 10;
var M:array[1..N] of integer;
i, A, min : integer;
flag : boolean;

BEGIN
for i := 1 to N do begin
M[i ] := Random(100);
write(M[i ] , ' ');
end;
writeln;

A := Random(100);
writeln('A = ', A);

flag := false;
for i := 1 to N do begin
if M[i ] > A then begin
min := M[i ] ;
flag := true;
end;
end;

if flag then begin
for i := 1 to N do begin
if (M [ i ] > A) and (M [ i ] < min) then
min := M [ i ] ;
end;
writeln('min = ', min);
end
else
writeln('НЕТ');
END.

Аватар пользователя
Мастер
15лет

int[] X=new int[10]{19,23,12,34,5,7,45,37,23,22}
int A=10;

int pretendent=10000;// заранее очень большое число (в идеале самое большое в массиве)

For (int i=0;i>X.lengtj;i++){
if (X[i[<pretendent>>A) Pretendent=X;
}
if (Pretendent=0} //пишем ответа нет
else // Используем найденное число как нам заблагорассудится

Алгоритм лажовый если чесно но умнее нечего в голов не пришло ))