-3

我的代码没有显示精确的浮点值意味着我使用 Turbo C 总结系列 1 + 1/3 + 1/5 + 1/7 + 1/9+…..到 N 项

#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();
}
4

4 回答 4

3

您正在使用int它只显示整数(即整数)值。它会截断任何小数位,因为它假定您不想要它们。尝试使用floatordouble代替。

于 2013-06-27T18:12:32.377 回答
1

整数除法不会给你除整数结果之外的任何东西。

你需要:

  1. 更改s为浮点数或双精度数。
  2. 更改m为浮点数或双精度数。
  3. 更改1为or (分别1/j用于float 和 double)。1.0f1.0

现在,您可能还想m为输入和 for 循环限制变量使用不同的变量,以便在计算开始后不会太快停止。

于 2013-06-27T18:12:54.903 回答
0

这是您在代码中声明的变量。

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

你认为你在哪里有一个浮点数?
(必须是类型floator double

你知道这int意味着integer,对吧?
(例如,不是浮点数)

于 2013-06-27T18:34:47.060 回答
0

使用double变量的类型ms

于 2013-06-27T18:12:37.320 回答