Найти наименьшее из нескольких целых чисел - C (СИ)
Формулировка задачи:
Как программировать на С, седьмое издание, Х.М.Дейтел, П.Дж.Дейтел
В этой книге есть упражнения для самоконтроля, после каждой главы, помогите найти ответы к этим упражнениям, т.к. в книге есть не все ответы, а только к первым упражнениям.
Вот например упражнение 4.11, поставило меня в тупик:
Напишите программу, которая находит наименьшее из нескольких целых чисел. Предположите, что первое считанное значение определяет количество оставшихся значений.
Как его решить?Решение задачи: «Найти наименьшее из нескольких целых чисел»
textual
Листинг программы
#include <stdio.h>
int main() {
int n, min, val;
if ((scanf("%d", &n) == 1)
&& (0 < n--)
&& (scanf("%d", &min) == 1)) {
while ((0 < n--) && (scanf("%d", &val) == 1)) {
if (val < min) {
min = val;
}
}
printf("min = %d", min);
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные:
n,minиval. - С помощью
scanfпрограмма считывает из стандартного ввода числоnи сохраняет его в переменнойn. - Затем программа проверяет, что ввод был успешным и
nбольше нуля. - Если условие выполняется, то программа считывает из стандартного ввода второе число и сохраняет его в переменной
min. - Далее программа выполняет цикл, пока
nбольше нуля и считывает из стандартного ввода третье число и сохраняет его в переменнойval. - Внутри цикла программа сравнивает
valсminи еслиvalменьшеmin, то обновляет значениеminнаval. - После завершения цикла программа выводит на стандартный вывод значение
min. - Если ввод был некорректным, то программа завершается с кодом ошибки.