Задание:
Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 160 до 200 – рост учащихся выпускного класса. В баскетбольную команду берут тех, чей рост не менее 180 см. Опишите на русском языке или на одном из языков программирования алгоритм, который подсчитывает и выводит минимальный рост игрока баскетбольной команды. Гарантируется, что хотя бы один ученик играет в баскетбольной команде. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.
Паскаль |
const N = 30; var A: array[1..N] of integer; i, x, y: integer; s: real; 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, x, y; float s; for (i=0; i<N; i++) scanf(″%d″, &A[i]); ... } |
Естественный язык |
Объявляется массив A из 30 элементов. Объявляются целочисленные переменные i, x и y, а также вещественная переменная s. В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый. ... |
Решение:
Фактически нужно найти минимальный рост ученика среди всех учеников, имеющих рост 180 см или выше.
Значение минимального роста будем хранить в переменной x. Поскольку известно, что все ученики не выше 200 см, сначала в переменную x запишем 200 (или любое большее число). Затем в цикле от 1 до 30 рассматриваем все элементы массива A. Если очередной элемент больше или равен 180 (нашли игрока-баскетболиста) и одновременно меньше x, записываем значение этого элемента в переменную x. После окончания цикла выводим значение переменной x. Недостающая часть программы может выглядеть так:
x := 200; { или любое число >= 200 }
for i:=1 to N do
if (A[i] >= 180) and (A[i] < x) then
x := A[i];
writeln('Рост ', x);