c语言编程实现求下述序列的累加和。
sum = 2/2 + 3/5 + 4/10 + … + (1+n)/(1+n^2) + …
要求:从键盘输入正整数n,输出运算的结果,注意输出格式的表示形式。
这题重点,sum要定义为浮点数,且必须初值0用于累加。n要是定义为整型,要注意整除符号。
我的演示代码,连带公式一起生成打印出来了,你要是不需要公式,可以删除循环中的printf语句。
#include<stdio.h>
int main()
{
int i,n;
float sum=0;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1,printf("sum=");i<=n;i++)
sum+=(1+i)*1.0/(1+i*i),printf("%d/%d%s",1+i,1+i*i,i<n?"+":"");
printf("=%f\n",sum);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-11-18
程序如下:
#include<stdio.h>
int main()
{
int i=1,n;
float s=0,t;
printf("Input n:\n");
scanf("%d",&n);
while(i<=n)
{
t = (float )(1+i)/(1+i*i);
s=s+t;
i++;
}
printf("n=%d, s=%f\n",n,s);
return 0;
}
编译运行结果:
Input n:
10
n=10, s=3.243400
#include<stdio.h>
int main()
{
int i=1,n;
float s=0,t;
printf("Input n:\n");
scanf("%d",&n);
while(i<=n)
{
t = (float )(1+i)/(1+i*i);
s=s+t;
i++;
}
printf("n=%d, s=%f\n",n,s);
return 0;
}
编译运行结果:
Input n:
10
n=10, s=3.243400
第2个回答 2019-11-21
最后一项,在for循环中使(-1)^n*x^n/n!的绝对值>=1e-8;不满足条件就退出循环