一个C++的编程小问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:36:45
程序要求计算下面这个数列的合,精确到小数点后面2位

1/30+2/29+3/28+.....+30/1

这个问题出现在“循环”这一章里面,我大概知道要用FOR语句
但是求出来的和始终是30,烦劳高人解答!!!
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int a,b;
double sum=0;
for (a=1, b=30; a<=30, b>=1; a++,b--)
sum=sum+a/b;
cout <<fixed <<showpoint <<setprecision(2) <<sum <<endl;
return 0;
}

是这样吗

#include <iostream>

using namespace std;

void main()
{

float i,j,sum=0;
for(i=1,j=30;i<=30,j>=1;i++,j--)
{
sum+=i/j;
}

cout << sum;
}

这个可以计算
可以运行
去试试吧
估计用变量时你用错了
一定都要用float型的
#include <iostream>

using namespace std;

void main()
{

float i,j,sum=0;
for(i=1;i<=30;i++) <--------!!!!!!!!!!
for(j=30;j>=1;j--)
{
sum+=i/j;
}

cout << sum;
}
你要是这么写就错了
这样下面的那个FOR循环会被执行30次

#include <iostream.h>
void main()
{
double i=1,j=30;
double sum=0.0;
while(i<=30 && j>=1)
{
sum=sum+i/j;
i++;j--;
}
cout<<sum<<endl;
}

你用的是整数进行计算 得出的结果也肯定是整数的! 要精确到2位的

可以这样!
float j=1,k;int i;
for(i=1;i<=30;i++)
{
k=j/(30-j+1);
j=j+1;