Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
1

Найти сумму цифр вещественного числа, введенного пользователем

07.06.2014, 19:41. Показов 2994. Ответов 10
Метки нет (Все метки)

Здравствуйте! Найти сумму цифр вещественного числа, введенного пользователем. Как это можно реализовать в функции? Заранее спасибо!
1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2014, 19:41
Ответы с готовыми решениями:

Сумма цифр введенного пользователем числа
Пользователь вводит с клавиатуры натуральное число, проверить корректность ввода, вычислить и...

Задача найти сумму первых трех цифр дробной части вещественного числа
Программа работает. Но мне не понятно, почему она работает только если вычитать 48? Изначально я...

Вывод всех цифр введенного пользователем числа через пробел в обратном порядке
Задача: Написать программу, которая выводит на экран все цифры введенного пользователем числа...

Написать рекурсивную функцию для вычисления суммы цифр натурального числа, введенного пользователем
Нужно написать рекурсивную функцию для вычисления суммы цифр натурального числа, введенного...

10
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
08.06.2014, 09:08 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
int fun(double n)
{
    int t, p, sum1 = 0, sum2 = 0, sum = 0;
    double z, intptr;
    t = (int)n;
    z = n - t;
    while (t)
    {
        sum1 += t % 10;
        t /= 10;
    }
 
    while (modf(z, &intptr) != 0)
    {
        z *= 10;
    }
    p = (int)z;
    while (p)
    {
        sum2 += p % 10;
        p /= 10;
    }
    sum = sum1 + sum2;
 
    return sum;
}
0
Модератор
Эксперт по электронике
8487 / 6314 / 854
Регистрация: 14.02.2011
Сообщений: 21,878
08.06.2014, 09:10 3
del
0
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
08.06.2014, 09:21 4
Цитата Сообщение от ValeryS Посмотреть сообщение
del
???
0
Модератор
Эксперт по электронике
8487 / 6314 / 854
Регистрация: 14.02.2011
Сообщений: 21,878
08.06.2014, 09:24 5

Не по теме:

Цитата Сообщение от Kostia10 Посмотреть сообщение
???
удалил сообщение, поскольку не соответствовало



вот этот вопрос меня смутил
Цитата Сообщение от Kostia10 Посмотреть сообщение
t = (int)n;
что будет в t если ввести 3.3e100???
0
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
08.06.2014, 09:31 6
Не знаю... Есть предложения как написать по другому?
0
Модератор
Эксперт по электронике
8487 / 6314 / 854
Регистрация: 14.02.2011
Сообщений: 21,878
08.06.2014, 09:33 7
Цитата Сообщение от Kostia10 Посмотреть сообщение
Есть предложения как написать по другому?
ну только мысли
переводить число в текстовый вид
например так
C++
1
2
char buf[100];
sprintf(buf,"%lf",n);
и парсить строку
иначе или переполнение или накопление ошибок из за округления
0
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
08.06.2014, 09:47 8
Цитата Сообщение от ValeryS Посмотреть сообщение
Код C++
C++
1
2
char buf[100];
sprintf(buf,"%lf",n);
Вставьте это в код, пожалуйста, как будет выглядеть...
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
08.06.2014, 09:48  [ТС] 9
А дальше все так же что ли? Или как? Покажите поподробней, пожалуйста...
0
Модератор
Эксперт по электронике
8487 / 6314 / 854
Регистрация: 14.02.2011
Сообщений: 21,878
08.06.2014, 10:00 10
Цитата Сообщение от Kostia10 Посмотреть сообщение
Вставьте это в код, пожалуйста, как будет выглядеть...
в какой код?
который я не написал?
0
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
08.06.2014, 11:41 11
Цитата Сообщение от ValeryS Посмотреть сообщение
в какой код?
который я не написал?
это:
C++
1
2
char buf[100];
sprintf(buf,"%lf",n);
В этот:
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
int fun(double n)
{
    int t, p, sum1 = 0, sum2 = 0, sum = 0;
    double z, intptr;
    t = (int)n;
    z = n - t;
    while (t)
    {
        sum1 += t % 10;
        t /= 10;
    }
 
    while (modf(z, &intptr) != 0)
    {
        z *= 10;
    }
    p = (int)z;
    while (p)
    {
        sum2 += p % 10;
        p /= 10;
    }
    sum = sum1 + sum2;
 
    return sum;
}
Добавлено через 1 час 4 минуты
Ну?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2014, 11:41

Посчитать количество и сумму десятичных цифр введенного числа
что-то не получается. Прошу помощи.Спасибо. #include<iostream> using namespace std; int...

Найти ошибочку. Нахождение суммы цифр вещественного числа
Всем привет! Создал функцию нахождения суммы цифр вещественного числа. Функция практически...

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include...

если сумму цифр введенного трехзначного числа N кратна трем, то увеличить число на единицу, иначе-уменьшить вдвое
если сумму цифр введенного трехзначного числа N кратна трем, то увеличить число на единицу,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.