Задание:
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номера двух элементов массива, сумма которых минимальна. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль |
const N=30; |
Си |
#include<stdio.h> |
Естественный язык |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min, min2, s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
Решение:
Очевидно, что нужно вывести номера минимального элемента массива и «второго» минимума. Храним в переменных min и min2 не значения, а номера элементов):
const N = 30;
var a : array[1..N] of integer;
i, k, min, min2: integer;
begin
for i: = 1 to N do readln(a[i]);
if a[1] < a[2] then begin
min : = 1; min2: = 2
end
else begin
min : = 2; min2: = 1
end;
for i: = 3 to N do
if a[i] < a[min] then begin
min2 : = min;
min: = i
end
else if a[i] < a[min2] then min2 : = i;
writeln(min, ' ', min2)
end.