C语言,1的阶乘+2的阶乘+...+12的阶乘。我这样写哪错了?
答案:4 悬赏:0 手机版
解决时间 2021-01-06 01:52
- 提问者网友:做自己de王妃
- 2021-01-05 16:05
C语言,1的阶乘+2的阶乘+...+12的阶乘。我这样写哪错了?
最佳答案
- 五星知识达人网友:鱼芗
- 2021-01-05 17:19
s[i]=1应该放在外循环
全部回答
- 1楼网友:鱼芗
- 2021-01-05 20:46
第二个 for 循环中的初始化语句 s[i]=1;应当放到该循环前面。追问我傻了....谢谢你哈追答不用谢~
- 2楼网友:西岸风
- 2021-01-05 19:47
比如说当j是3的时候,s[i]=1,s[i]=s[i]*3=3,这是3的阶乘的结果吗?显然不是吧。
试着把s[i]=1放到循环体的上面去,你看看结果追问我傻了....谢谢你哈
试着把s[i]=1放到循环体的上面去,你看看结果追问我傻了....谢谢你哈
- 3楼网友:纵马山川剑自提
- 2021-01-05 18:21
#include
int main()
{
long a[12],ans=0;
int i,j;
for(i=0;i<12;i++)
{
a[i]=1;
for(j=1;j<=i+1;j++)
{
a[i]*=j;
}
}
for(i=0;i<12;i++)
ans+=a[i];
printf("%ld ",ans);
return 0;
}
在第二重循环中,每一次s[i]都先被更新为1再乘j,所以你应该把s[i]=1放在外面的循环中,先s[i]=1,再执行第二重循环,记得加上大括号
追问我傻了....谢谢你哈
int main()
{
long a[12],ans=0;
int i,j;
for(i=0;i<12;i++)
{
a[i]=1;
for(j=1;j<=i+1;j++)
{
a[i]*=j;
}
}
for(i=0;i<12;i++)
ans+=a[i];
printf("%ld ",ans);
return 0;
}
在第二重循环中,每一次s[i]都先被更新为1再乘j,所以你应该把s[i]=1放在外面的循环中,先s[i]=1,再执行第二重循环,记得加上大括号
追问我傻了....谢谢你哈
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯