要计算1+1/2+2/3+3/4+.
有uu可以程序出了啥问题不
#include<stdio.h>
int main()
{
float sum=0;
float i,j,n;
float s;
scanf("%.2f",&n);
for(i=1;i<=n;i++)
{
j=i+1;
s=i/j;
sum+=s;
}
printf("%.2f",sum);
return 0;
}
s=i/j;这句代码有问题,会取整。
改为 s=i/1.0*j;
sum的初始值改为1,即sum=1,
i,j,n的类型改为int,即int i,j,n,循环变量必须为整形。
s=i/j;
改为
s=i*1.0/j;
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include<stdio.h>
int main()
{
float sum=1.0;
float i,j;
int n;
float s;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=i+1;
s=i/j;
sum+=s;
}
printf("%.2f",sum);
return 0;
}
float类型不能用++操作吧,改成+=1。另外,float类型控制循环是不合适的,可能会引入误差,最好用int类型来控制循环