Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 29.09.2014
Сообщений: 112
1

Найти сумму максимальной и минимальной цифры

23.09.2015, 01:12. Показов 1119. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральное число n. Найти сумму максимальной и минимальной цифры. Если соответствующая максимальная ( минимальная ) цифра встречается в числе более одного раза, то и в суммировании она участвует соответствующее число раз. ( без массива )

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2015, 01:12
Ответы с готовыми решениями:

Найти порядковый номер максимальной и минимальной цифры в четырехзначном числе
Используя switch найти порядковый номер максимальной и минимальной цифры в четырехзначном числе. ...

Найти элементы массива с максимальной и минимальной дробной частью
Здравствуйте. Дан массив вещественных чисел. Как найти числа с максимальной и минимальной дробной...

Найти в строке слова с максимальной и минимальной длиной и переписать их в другую строку
Ребят, выручите, пожалуйста. Найти слово с максимальной и минимальной длиной и переписать их в...

Найти среднее арифметическое между числами с максимальной и минимальной дробной частью.
Здравствуйте,помогите, пожалуйста, исправить код и объясните, как должно быть. Дан массив...

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
23.09.2015, 01:20 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
 
unsigned min_digit(unsigned n) {
    if ( n < 10 )
        return n;
    else {
        unsigned next = min_digit(n / 10);
        unsigned last = n % 10;
        return ( last < next ) ? last : next;
    }
}
 
unsigned max_digit(unsigned n) {
    if ( n < 10 )
        return n;
    else {
        unsigned next = max_digit(n / 10);
        unsigned last = n % 10;
        return ( last > next ) ? last : next;
    }
}
 
unsigned min_max_digits_sum(unsigned n) {
    unsigned sum = 0;
    unsigned minDigit = min_digit(n);
    unsigned maxDigit = max_digit(n);
    
    for ( ; n; n /= 10 ) {
        unsigned last = n % 10;
        if ( last == minDigit || last == maxDigit )
            sum += last;
    }
    
    return sum;
}
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 ) 
        printf("Min digit: %u; max digit: %u; sum of all of them: %u\n",
            min_digit(n), max_digit(n), min_max_digits_sum(n));
    
    return 0;
}
0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
23.09.2015, 02:48 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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;
}
Добавлено через 11 минут
с учетом того что число может быть меньше 10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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;
if(t<10){
        printf("The result of programm is %d\n", t);
}else{
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;
}
0
23.09.2015, 02:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2015, 02:48
Помогаю со студенческими работами здесь

Функция: найти среднее арифметическое между числами с максимальной и минимальной дробной частью
Здравствуйте, помогите, пожалуйста, исправить код и объясните, как должно быть. Дан массив...

Функция: найти среднее арифметическое между элементами массива с максимальной и минимальной дробной частью
Здравствуйте. Помогите,пожалуйста, решить задачу по теме функции. Дан массив вещественных чисел,...

Найти в заданном числе порядковый номер минимальной цифры
Задание:Дано натуральное число.Найти в нем порядковый номер минимальной цифры. Я для начала...

Поменять местами столбцы с минимальной и максимальной суммой элементов
Задание: &quot;Вывести исходную матрицу N на M, в которой столбцы с минимальной и максимальной суммой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru