Форум программистов, компьютерный форум CyberForum.ru

Вычисление суммы - C++

Восстановить пароль Регистрация
 
Kotovas
Сообщений: n/a
07.05.2011, 17:07     Вычисление суммы #1
Подскажите, пожалуйста, в чем ошибка.
Условие задачи:
Вычислить сумму 1+1/2+1/3+...+1/10.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   float fTerm=0;
   float fSummer=0;
   for (int i=1; i<11; ++i)
{
       fTerm=1/i;
       fSummer=fSummer+fTerm;
}
   cout << "summer = " << fSummer;   
    system("PAUSE");
    return EXIT_SUCCESS;
}
Но все члены суммы, кроме первого обращаются в 0. Думаю, что напортачил с объявлением переменных, но не получается исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 17:07     Вычисление суммы
Посмотрите здесь:

C++ Вычисление суммы
вычисление суммы C++
вычисление суммы C++
C++ Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
C++ Вычисление суммы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
4uX
4 / 4 / 0
Регистрация: 31.03.2011
Сообщений: 12
07.05.2011, 17:17     Вычисление суммы #2
попробуй написать fTerm=1.0/i;
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
07.05.2011, 17:21     Вычисление суммы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   float fTerm=0;
   float fSummer=0;
   for (int i=1; i<11; ++i)
{
       fTerm=(float)1/i;
       fSummer+=fTerm;
}
   cout << "summer = " << fSummer;   
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 56 секунд
ОПОЗДАЛ ПОКА КОД ОФОРМЛЯЛ)))

 Комментарий модератора 
Вот чтобы подобной ерундой не заниматься, всё же стоит разобраться в возможностях форума, в тегах форматирования и почитать, например, эту тему. А так же пункт 2.8 правил.
Kotovas
Сообщений: n/a
07.05.2011, 17:26     Вычисление суммы #4
Действительно, написал fTerm=1.0/i; и заработало.
В чем разница между 1 и 1.0 для с++?
4uX
4 / 4 / 0
Регистрация: 31.03.2011
Сообщений: 12
07.05.2011, 17:29     Вычисление суммы #5
при 1/i он обрабатывает их как целочисленные значения, отбрасывает дробную часть. потому и получается 0.
при 1.0/i ты ему явно указываешь, что тут вещественный тип будет, и он сохраняет дробную часть.
как-то так =)
Yandex
Объявления
07.05.2011, 17:29     Вычисление суммы
Ответ Создать тему
Опции темы

Текущее время: 12:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru