#include<stdio.h>
int main()
{
double sum=0;
int n,i;
printf("请输入n的值:");
scanf("%d",&n);
for(i=0;i<n;i++)
sum+=1/(n*(n+1));
printf("%f\n",sum;)
return 0;
}
这是求1/2+1/6+1/12……+1/(n*(n+1))?
那sum+=1/(n(n+1));这行代码中n要改成i。
还有如果i从0开始,那么就出现了“1/0”,建议i从1开始。
最后将1除上一个整数,会再赋值给double型的sum会丢失小数不部分,可以把1改成1.0试下。
下面我改了下,但是没有带电脑,可能和你想要的结果不一样。
#include<stdio.h>
int main()
{
double sum=0;
int n,i;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<n;i++)
sum+=1.0/(i(i+1));
printf("%f\n",sum);
return 0;
}
0呗
n是int型,1/(n*(n+1))永远是0
如果输入1,结果是:1/2
如果输入2,结果是:1/6+1/6=1/3
如果输入3,结果是:1/12+1/12+1/12=1/4
如果输入4,结果是:1/20+1/20+1/20+1/20=1/5
如果输入5,结果是:1/30+1/30+1/30+1/30+1/30=1/6
以此类推。
一个数循环乘积:如n=4:1/(45)4其实就等于1/n+1