Выяснить: является ли сумма цифр двузначным числом (правильно ли решена задача?) - C (СИ)
Формулировка задачи:
Дано двузначное число. Выяснить: является ли сумма цифр двузначным числом. Больше ли числа
N их сумма.
#include <stdio.h>
int main ()
{ float s, z, b;
int d;
scanf ("%d", &d);
z=d%10;
b=d/10;
s=z+b;
printf("%f",s);
return 0;
}Решение задачи: «Выяснить: является ли сумма цифр двузначным числом (правильно ли решена задача?)»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
int main() {
int value;
printf( "Введите двузначное число " );
scanf( "%d", &value ); // отсутствует проверка ввода
int currValue = abs( value );
if( currValue > 99 || currValue < 10 ){
puts( "Данное число не является двузначным!" );
return EXIT_FAILURE;
}
int n;
printf( "Введите число N ");
scanf( "%d", &n ); // отсутствует проверка ввода
// находим сумму цифр двузначного числа
int sum = currValue % 10 + ( currValue / 10 );
if( sum > 9 )
printf( "Сумма цифа числа %d равна %d является двузначным числом ", value, sum );
else
printf( "Сумма цифа числа %d равна %d НЕ является двузначным числом ", value, sum );
if( sum > n )
printf( "и больше числа %d\n", n );
else
printf( "и НЕ больше числа %d\n", n );
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdlib.h и printf.h
- Объявление переменной
valueтипа int для хранения двузначного числа - Вывод сообщения с просьбой ввести двузначное число
- Считывание двузначного числа с помощью функции
scanfв переменнуюvalue - Преобразование введенного числа в абсолютное значение с помощью функции
absи сохранение результата в переменнуюcurrValue - Проверка, является ли число двузначным: если число меньше 10 или больше 99, то выводится сообщение о том, что число не является двузначным и программа завершается с кодом ошибки EXIT_FAILURE
- Объявление переменной
nтипа int для хранения числа N - Вывод сообщения с просьбой ввести число N
- Считывание числа N с помощью функции
scanfв переменнуюn - Вычисление суммы цифр двузначного числа:
currValue % 10возвращает последнюю цифру числа, а(currValue / 10)возвращает число без последней цифры. Полученные значения складываются и сохраняются в переменнуюsum - Проверка, является ли сумма цифр двузначным числом: если сумма цифр больше 9, то выводится сообщение о том, что сумма цифр является двузначным числом, иначе выводится сообщение о том, что сумма цифр не является двузначным числом
- Проверка, является ли сумма цифр больше числа N: если сумма цифр больше N, то выводится сообщение о том, что сумма цифр больше числа N, иначе выводится сообщение о том, что сумма цифр не больше числа N
- Возвращение значения EXIT_SUCCESS, указывающего на успешный конец работы программы