Ввести число и узнать, является ли его старшая цифра самой большой - C (СИ)
Формулировка задачи:
Нужно ввести число и узнать, является ли его старшая цифра самой большой
к примеру 123 старшая цифра 1-нет не является
Решение задачи: «Ввести число и узнать, является ли его старшая цифра самой большой»
textual
Листинг программы
#include <stdio.h>
int first_biggest(int n) {
if ( n > 9 ) {
int first = first_biggest(n / 10);
return ( first > n % 10 ) ? first : 0;
}
else
return n;
}
int main(void) {
int n;
while ( printf("Number: ") && scanf("%d", &n) == 1 && n > 0 )
printf("%s\n", ( first_biggest(n) ) ? "YES" : "NO");
return 0;
}
Объяснение кода листинга программы
- Вводится число, и выполняется проверка, больше ли оно 9.
- Если число больше 9, то функция first_biggest вызывается рекурсивно для вычисления старшей цифры этого числа.
- Если число меньше или равно 9, то функция first_biggest возвращает само число.
- В функции first_biggest выполняется проверка, является ли первая цифра введенного числа больше последней цифры.
- Если первая цифра больше последней, то функция возвращает первую цифру, иначе возвращается 0.
- В функции main выполняется цикл, в котором пользователю предлагается ввести число и выводится результат проверки, является ли его старшая цифра самой большой.
- Цикл продолжается, пока пользователь не введет число, равное 0.