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

仙人球 2011-11-02 03:47:31
#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的值在程序运行时由键盘输入。
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-11-02
  • 打赏
  • 举报
回复
1. 除用于循环记数的变量用int外,其它的都用double或者float吧
2. 去查查C语言的书,看看^是啥意思。
仙人球 2011-11-02
  • 打赏
  • 举报
回复
请问C中表示幂次的符号是???
crystalde 2011-11-02
  • 打赏
  • 举报
回复
s=s+q%m;
printf("s=%f\n",s);
另 s定义为float试试


bdmh 2011-11-02
  • 打赏
  • 举报
回复
如1楼所说,注意数值类型
l302keshuiren 2011-11-02
  • 打赏
  • 举报
回复
你用的都是整形int,除完以后小数点都被忽略了.还有q=(-1)^(i-1);这个也不对,C语言中貌似^表示异或吧.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧