试了几次编译都没有问题,就是一直运行不对,能不能帮忙讲解一下。实在是没有办法了。
第3题:
#include <stdio.h>
int main(void)
{
int m=0,n=0,i=0;
double sum;
scanf("%d%d",&m,&n);
for(i=m; i<=n; i++)
{
sum+=i*i+1/(double)i; //这里累加,1/i要先把i强制转换为double型
}
printf("%lf\n",sum);
return 0;
}
第4题:
#include <stdio.h>
int main(void)
{
int n=0,i=0,j=1;
double sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
sum+=j*(double)(i+1)/(double)(2*i+1); //这里同样要进行强制类型转换
j=-j; //j控制符号
}
printf("%lf\n",sum);
return 0;
}
你可能是不理解整除算法
比如 2 / 3 是等于0的,但是你的题目是需要 2 / 3 = 0.66666666667,
因为2和3都是整数,结果是等于0,所以要让它们变成浮点型,
可以像楼1那样,强制转换成double,也可以 1.0 * 2 / 3