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