c++问题???

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:14:44
#include<iostream>
using namespace std;
int main()
{ int i;
double s;
for(i=2,s=1;s<=30;i++)
{s+=double(1)/i;}
cout<<s;
return 0;
}
怎么没输出S啊
题目是s=1+1/2+1/3+......+1/n,s>=30时输出n和s的值。

你应该是i<=30吧,s不可能<=30,所以打印不出来数据!
#include<iostream>
using namespace std;
int main()
{
int i;
double s;
for(i=2,s=1;i <= 30; i++)
{s+= double(1)/i;}
cout<<s<<endl;
return 0;
}

s能够>=30吗?

楼主

应该是你的条件写错了,for循环里面的s始终是<=30的,所以判断的条件表达式始终为ture,就跳不出循环了,你调试一下应该就可以明白

根据问题补充,应:s=1+1/2+1/3+......+1/n,n>=30时输出n和s的值。

#include<iostream>
using namespace std;
int main()
{
int n;
double s;
for(n=2,s=1;n<30;n++)
{s+= double(1)/n;}
cout<<s<<endl;
return 0;
}