读书人

这个程序哪里错啦。求解说。多谢啦

发布时间: 2012-04-21 14:34:44 作者: rapoo

这个程序哪里错啦。求解说。谢谢啦。
#include <stdio.h>
main()
{
int q=1,z,i,n,t=1,s=0,m=1;
scanf ("%d",&n);
for (i=1;i<=n;i++)
{t=2*i-1;
for (z=1;z<=t;z++)
m=m*z;
q=(-1)^(i-1);
s=s+q/m;
}
printf("s=%d\n",s);
}
题目:编程计算1-1/3!+1/5!-1/7!+...+(-1)^(n-1)/(2n-1)!,其中n的值在程序运行时由键盘输入。

[解决办法]
你用的都是整形int,除完以后小数点都被忽略了.还有q=(-1)^(i-1);这个也不对,C语言中貌似^表示异或吧.
[解决办法]
s=s+q%m;
printf("s=%f\n",s);
另 s定义为float试试



[解决办法]
1. 除用于循环记数的变量用int外,其它的都用double或者float吧
2. 去查查C语言的书,看看^是啥意思。

读书人网 >C语言

热点推荐