int
t=1;
//定义一个表示正负号的变量
for
(i=0;i<=n;i++)
{
x=t*1.0/(2*i+1);
//这里必须是1.0,要不然1/n=0(n不是1的时候)这个是必然的
t*=-1;
//一般正负交替的时候,这样更方便一些
}
其他的地方不用改
#include
float fun(int n)
{
int i;
float x,y;
float sum=0.0;
for (i=0;i<=n;i++)
{
x=(float)1/(2*i+1);
if (i%2==0)
y=x;
else
y=-x;
sum=sum+y;
}
return sum;
}
void main()
{
int m;
float z;
printf("请输入m的值:");
scanf("%d",&m);
z=fun(m);
printf("该计算式的值为:%f\n",z);
}
x=1/(2*i+1); 需要类型转换,x=(float)1/(2*i+1);
int t=1; //定义一个表示正负号的变量
for (i=0;i<=n;i++)
{
x=t*1.0/(2*i+1); //这里必须是1.0,要不然1/n=0(n不是1的时候)这个是必然的
t*=-1; //一般正负交替的时候,这样更方便一些
}
其他的地方不用改
楼上两人答案都对! 当两个整型变量相除时,系统默认它的值还是整型,如果没有猜错的话,你的程序运行结构为0; 因为x=1/(2*i+1)永远为0