Выяснить: является ли сумма цифр двузначным числом (правильно ли решена задача?) - 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, указывающего на успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д