C语言环境编程,输入N,求1到N的阶乘之和。TC环境,

题目如题,以下是我编的,提示无错,但输入N后,就一直无限循环。求解。#include<stdio.h>intmain(){longlonginta,b,s,n;a=1;b... 题目如题,以下是我编的,提示无错,但输入N后,就一直无限循环。求解。
#include<stdio.h>
int main()
{
long long int a,b,s,n;
a=1;
b=1;
s=0;
printf("n=");
scanf("%d",&n);
while(a<=n)
{
s=s+b;
a=++a;
b=b*a;
}
printf("s=%d\n",s);
return 0;
}

展开
 我来答
Arthurzss
2013-10-28 · TA获得超过1661个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:242万
展开全部
因为定义的是long long类型的n,但是格式化输入的时候却用的int的格式%d, 所以修改scanf语句为:
scanf("%lld", &n);//注意格式中增加了两个l,变为%lld,程序可以运行了

同样,输出格式也要修改为:
printf("s=%lld\n",s);

但要注意的是阶乘的数很大,n,a都只能取很小的数,才能保证b,s不超范围.

望采纳,顺便赞一个,谢谢
warriorsat
2013-10-28 · TA获得超过676个赞
知道小有建树答主
回答量:698
采纳率:33%
帮助的人:400万
展开全部
除了楼上发现的之外,
a=++a;错误,这句话翻译过来就是这样a=(a=a+1),没这么做过不知道跑出来到底是不是a=a+1;
再就是程序并不复杂,调试起来很快就能得到结果
换成++a或者a=a+1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式