Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kostia10
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33
#1

Найти ошибочку. Нахождение суммы цифр вещественного числа - C++

08.06.2014, 09:17. Просмотров 300. Ответов 1
Метки нет (Все метки)

Всем привет! Создал функцию нахождения суммы цифр вещественного числа. Функция практически работает, но, когда я кладу в переменную число н-р: "1.256" почему-то добавляются к числу девятки т.е. становится так: "1.2569999999"
b т.к. девятки тоже суммируются, ответ получается не верным.
Помогите, пожалуйста, как можно исправить это.
Код функции:

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;
}
Код ее использования:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<math.h>
using namespace std;
int main(void)
{
    float a;
    int t = 0, d;
    cout << Rus("Введите вещественное число:\n");
    cin >> a;
    d = fun(a);
    cout << Rus("Сумма цифр вещественного числа равна ") << abs(d) << "\n";
    return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 09:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти ошибочку. Нахождение суммы цифр вещественного числа (C++):

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Нахождение суммы цифр заданного трехзначного числа - C++
условие задачи: найдите сумму цифр заданного трехзначного числа.

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

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

Найти среди двузначных чисел такие, что квадрат числа равен кубу суммы цифр этого числа - C++
Найти среди двузначных чисел такие, что квадрат числа равен кубу суммы цифр этого числа. Помогите пожалуйста, как тут написать само...

Найти квадрат суммы цифр двуцифрового натурального числа - C++
Найти квадрат суммы цифр двуцифрового натурального числа?

1
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
08.06.2014, 13:18 #2
Добавим немного читерства))
Прочитаем число в строку и будем перебирать символы. Если не разделительный знак ".", то прибавляем к сумме код символа-48 ("0"-48, "1"-49, ... ).

Зачем так? Потому что вещественные числа сохраняються в памяти компа "по своим хитрым правилам", например число 1.23 будет 1.2299999... пока хватает розрядности)) или 34.56 -- 34.56000000001 и т.д.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s;
    cout<<"enter number ";
    cin>>s;
    int summ_digits=0,i=0;
    for(;i<s.length();++i) {
        if (s[i]!='.') summ_digits += s[i]-48;
    }
    cout<<summ_digits<<endl;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2014, 13:18
Привет! Вот еще темы с ответами:

Определить равна ли сумма k цифр дробной части заданного вещественного числа сумме цифр целой части - C++
Помогите доделать задание, исправьте пожалуйста код!!! Срочно! Задание: Выполнить задания, выделяя цифры числа, хранящегося в переменной...

Определения, равна сумма цифр целой части вещественного числа сумме такого же количества цифр в дробной части - C++
Нада написать 2 программки 1. Определения, равна сумма цифр целой части вещественного числа сумме такого же количества цифр в дробной...

В интервале найти натуральные числа равные кубу суммы своих цифр - C++
В заданном интервале найти все натуральные числа, равные кубу суммы своих цифр.

Найти в массиве количество простых чисел,больших суммы цифр первого числа - C++
Учусь на 1 курсе,стараюсь,но пока очень туго понимаю С++, по шаблону что-то написать могу, а какое-то другое условие - и я в ступоре. На...


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

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

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