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

Не могу найти ошибку, при любом значении выводит 1.68729e+038 - C++

Восстановить пароль Регистрация
 
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
18.10.2013, 17:31     Не могу найти ошибку, при любом значении выводит 1.68729e+038 #1
нахождение значения выражения
Р=1/1*2 + 1/2*3 + ... + 1/n*(n+1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 #include <iostream>
#include <math.h>
 
using namespace std;
 
float fun (int n);
int main ()
{
    int n;
    cin >> n;
    cout << fun(n)<<endl;
    return 0;
}
 
float fun (int n)
{
    float p, a;{
    for (int i=1; i<=n; i++)
        a=1/(i*(i+1));
        p+=a;}
    return p;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
18.10.2013, 17:48     Не могу найти ошибку, при любом значении выводит 1.68729e+038 #2
А где начальное значение p? Ну обратите внимание, где стоит скобка на 17 строке.
Murad93
10 / 10 / 1
Регистрация: 20.09.2012
Сообщений: 74
18.10.2013, 17:48     Не могу найти ошибку, при любом значении выводит 1.68729e+038 #3
Фигурную скобку после объявления "float a" нужно убрать. она должна быть сразу после "for (int i=1; i<=n; i++)"
И используются неинициализированные переменные "p" и "a", т.е. перед их использованием нужно их прировнять нулю
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
 #include <iostream>
#include <math.h>
 
using namespace std;
 
float fun (int n);
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    cin >> n;
    cout << fun(n)<<endl;
    return 0;
}
 
float fun (int n)
{
    float p=0, a=0;
    for (int i=1; i<=n; i++){
        a=(float)1/(i*(i+1));
        p+=a;}
    return p;
}
Troo
1 / 1 / 0
Регистрация: 09.10.2013
Сообщений: 73
18.10.2013, 17:58  [ТС]     Не могу найти ошибку, при любом значении выводит 1.68729e+038 #4
Murad93, спасибо большое, я поняла свои ошибки)
Yandex
Объявления
18.10.2013, 17:58     Не могу найти ошибку, при любом значении выводит 1.68729e+038
Ответ Создать тему
Опции темы

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