Найти сумму максимальной и минимальной цифры - C (СИ)
Формулировка задачи:
Дано натуральное число n. Найти сумму максимальной и минимальной цифры. Если соответствующая максимальная ( минимальная ) цифра встречается в числе более одного раза, то и в суммировании она участвует соответствующее число раз. ( без массива )
#include <stdio.h>
int main(void)
{
int n, m, min, max, sum;
min = 10;
max = 0;
scanf("%i", &n);
do {
m = n % 10;
n = n / 10;
if (min > m)
min = m;
if (max < m)
max = m;
} while (n != 0);
sum = min + max;
printf("Min:\n%i\n", min);
printf("Max:\n%i\n", max);
printf("Summa:\n%i\n", sum);
return 0;
}Решение задачи: «Найти сумму максимальной и минимальной цифры»
textual
Листинг программы
#include<stdio.h>
int main(){
int n;
printf("Enter number: ");
scanf("%d",&n);
int max, min, t = n, maxCount = 0, minCount = 0;
max = min = t%10;
while(t){
if(max < t%10) max = t%10;
if(min > t%10) min = t%10;
t=t/10;
}
printf("max = %d and min = %d\n", max, min);
t=n;
while(t){
if(max == t%10) maxCount++;
if(min == t%10) minCount++;
t=t/10;
}
printf("max is found %d time(s), min is found %d time(s)\n",maxCount, minCount);
printf("The result of programm is %d\n", max*maxCount + min*minCount);
return 0;
}
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы найти максимальную и минимальную цифру в числе, которое вводит пользователь, а затем найти сколько раз каждая из этих цифр встречается в числе. Затем код вычисляет и выводит результат, который представляет собой сумму максимальной и минимальной цифры, умноженную на количество раз, которое каждая из этих цифр встречается в числе. Список действий:
- Ввод числа от пользователя
- Инициализация переменных:
- max и min инициализируются как первая цифра числа (t%10)
- maxCount и minCount инициализируются как 0
- Делитель цикла while используется для обработки каждой цифры числа
- Если следующая цифра больше max, то max обновляется
- Если следующая цифра меньше min, то min обновляется
- Цифра сдвигается вправо на каждом шаге цикла (t/10)
- Цикл while используется для подсчета количества раз, которое каждая цифра встречается в числе
- Если следующая цифра равна max, то maxCount увеличивается на 1
- Если следующая цифра равна min, то minCount увеличивается на 1
- Цифра сдвигается вправо на каждом шаге цикла (t/10)
- Вывод максимальной и минимальной цифры и количества их вхождений
- Вывод результата программы (maxmaxCount + minminCount)
- Конец программы (return 0)