/ Материалы / Язык программирования: Паскаль / Дан массив. Cумма которых минимальна

Дан массив. Cумма которых минимальна

Задание:

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номера двух элементов массива, сумма которых минимальна. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

const N=30; 
var a: array [1..N] of integer; 
    i, j, min, min2, s: integer; 
begin
  for i:=1 to N do readln(a[i]); 
  ...
end.

Си

#include<stdio.h> 
int main(void) { 
const int N=30; 
int a[N]; 
int    i, j, min, min2, s; 
for (i=0; i<N; i++)
  scanf(″%d″, &a[i]); 
  ...
}

Естественный язык

Объявляем массив 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.

Похожие материалы

Поделитесь в социальных сетях

Наверх