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

Цикл выполняется один раз - C++

Восстановить пароль Регистрация
 
konstantusha
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 12
30.09.2012, 11:53     Цикл выполняется один раз #1
Здравствуйте! Помогите, пожалуйста с задачей.

Пусть а[0]=а[1]=1. а[к] = а[к-1] + а[к-1]/2к-1 где к=2,3...Посчитать произведение а0*а1*…*а[n] пока |ак|< eps.

Проблема заключается в том, что цикл выполняется один раз.

Код:

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
# include <iostream>
# include <math.h>
 
float a,a1,eps,p;
int k;
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    cout<<"Введите eps: ";
    cin>>eps;
    p=1;
    a=1;
    k=2;
    while(fabs(a)<eps)
    {
        a1=a+a/pow((float)2,k-1);
        p=p*a1;
        a=a1;
        k=k+1;
            
    }
    
    cout<<p<<endl;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
30.09.2012, 12:03     Цикл выполняется один раз #2
konstantusha, а какое значение eps вы вводите? Если из интервала (1, 1.5], то все правильно
konstantusha
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 12
30.09.2012, 12:10  [ТС]     Цикл выполняется один раз #3
Любое: 3,5,7 ... и так далее. А получаю на выходе все время 1,5.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
30.09.2012, 12:17     Цикл выполняется один раз #4
konstantusha, http://codepad.org/VvO34sO7 как видим, с программой все нормально
Yandex
Объявления
30.09.2012, 12:17     Цикл выполняется один раз
Ответ Создать тему
Опции темы

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