2013-06-27 24 views
-3

我的代碼不表示精確的浮點值指數後不被 我使用的Turbo C爲總結該系列中的代碼顯示點1 + 1/3 1/5 + + 1/7 + 1/9 + ... ..多達N項我的C++代碼不表示浮點值

#include<iostream.h> 
#include<conio.h> 
void main() 
{ 
    int k=0; 
    int m=0; 
    int s=1; 
    clrscr(); 
    cout<<"Enter the limit of the series: "; 
    cin>>m; 
    for(int j=1;j<=m;j=j+2) 
    { 
      m=1/j; 
      s+=m; 
    } 
    cout<<"Sum of the given series is: "<<s; 
    getch(); 
} 
+7

'int'在**整數**中。改用'double'。 – Angew

+1

重複數百次。 –

+2

任何時候,你問你給什麼輸入你的程序的問題,您應該清楚闡明(** ** 1),(** 2 **)你所期望的輸出,並且(** 3 **)輸出什麼,你居然得到。這三個問題都失敗了。 – abelenky

回答

3

您使用int只顯示整數(即整數)值。它會截斷任何小數位,因爲它假定你不需要它們。請嘗試使用floatdouble代替。

0

使用變量ms類型double

1

整數除法不會給你比整數結果的其他任何東西。

您需要:

  1. 變化s到float或double。
  2. 變化m到浮子或兩倍。
  3. 更改11/j1.0f1.0(分別爲float和double)。

現在,您可能還想爲您的輸入和循環限制變量使用與m不同的變量,因此一旦計算開始後您不會太快停止。

0

下面是你在你的代碼中聲明的變量。

int k=0; 
int m=0; 
int s=1; 

你到底在哪裏認爲你有浮點數?
(這必須是float類型或double的)

你知道int意味着整數,對不對?
(例如,不是一個浮點數)