错误 C语言

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:21:51
#include<stdio.h>
void main()
{
int n,i;
float sum;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i==1)
sum=1/3;
else
sum+=(i-1)*(i+1)/(i*(i+2));
}
printf("sum=%.2f\n",sum);
}

#include<stdio.h>
void main()
{
int n,i;
float sum;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i==1)
sum=1.0/3;//如果是1的话默认整形,永远是零
else
sum+=(float)(i-1)*(i+1)/(i*(i+2)); //整形相除得整形
}
printf("sum=%.2f\n",sum);
}

sum+=(i-1)*(i+1)/(i*(i+2));
这句不符合你的目的,
2个解决办法:
①。把i定义成float
②。强制类型转换sum+=(float)(i-1)*(i+1)/(i*(i+2));