Найти полусумму от введенного и обратного ему числа - C (СИ)
Формулировка задачи:
Доброго дня!
По условию задачи необходимо определить число, обратное введенному и вычислить полусумму этих чисел.
Пример:
вводим число 123 и получаем - (123+321)/2
Вроде как программу рабочую сделал, но хотел бы уточнить данный вид решения является оптимальным или можно данную задачу решить проще?
Листинг программы
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- int main()
- {
- system ("chcp 1251");
- system ("cls");
- int a,b;
- printf("введите число= ");
- scanf("%d",&a);
- int t=a,k=0;
- //определяем сколько цифр введено
- while (t!=0)
- {
- t/=10;
- k++;
- }
- //определяем число, обратное введенному
- t=a;
- int c=0,n=0;
- for (n=0; n<k; n++)
- {
- b=t%10;
- t/=10;
- c=b*pow(10,k-n)+c;
- }
- c/=10;
- printf("\n обратное число= %d", c);
- //вычисляем полусумму чисел
- printf("\n polsum= %d", (a+c)/2);
- getchar();
- return 0;
- }
Решение задачи: «Найти полусумму от введенного и обратного ему числа»
textual
Листинг программы
- int a,b;
- printf("введите число= ");
- scanf("%d",&a);
- b=0;
- for (int t=a; t; t/=10) b=b*10+t%10;
- printf("\n обратное число= %d", b);
- //вычисляем полусумму чисел
- printf("\n polsum= %f", (a+b)/2.0);
Объяснение кода листинга программы
- Объявляются две переменные типа int -
a
иb
. - Пользователю предлагается ввести число, которое сохраняется в переменной
a
. - Переменная
b
инициализируется нулем. - В цикле for перебираются все цифры числа
a
, начиная с его старшего разряда. Для каждой цифры выполняется операция умноженияb
на 10 и сложения с остатком от деленияt
на 10 (что дает цифру числа, взятую с обратным знаком). Результат сохраняется в переменнойb
. - Выводится обратное число, сохраненное в переменной
b
. - Вычисляется полусумма чисел
a
иb
. Для этого сначала выполняется операция сложенияa
иb
, а затем результат делится на 2.0 (что дает полусумму с плавающей точкой). - Выводится полусумма чисел
a
иb
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д