2016-10-29 2 views
-2

Почему этот код не работает должным образом?Моя переменная не получает valye как ожидалось

Когда я начинаю отладки proizvod всегда на 1, летучая мышь должна быть

0.75 = 1 - (1/4) and so on. 

Мой код это

#include "stdafx.h" 
#include <iostream> 
using namespace std; 
int _tmain() 
{ 
    int plusminus = 1, brojac = 0; 
    double proizvod = 1; 
    double pi; 
    while (brojac < 6) 
    { 
     plusminus = plusminus + 2; 
     if (brojac % 2 == 0) 
     { 
      proizvod = proizvod - (1/plusminus); 
     } 
     else 
     { 
      proizvod = proizvod + (1/plusminus); 
     } 
     pi = proizvod * 4; 
     brojac++; 
    } 
    cout << "Broj PI sa 6 decimala je " << pi << " ." << endl; 
} 
+0

Вы делите целые числа. Они не преобразуются автоматически в 'double'. ('1/3 == 0') – UnholySheep

+0

Отформатируйте свой код с помощью modicum смысла. –

ответ

1

1/plusminus может быть только 0, поскольку plusminus представляет собой целое число> 1 (вы увеличивайте его на 2 в начале), так что вы испытываете целочисленное деление.

Пример исправления: 1.0/plusminus

Смежные вопросы