3个回答
展开全部
看了你的程序,也把我绕晕了。
一、按你的思路,从1到n,建立一个循环(循环变量t),然后建立一个内循环(循环变量i),用于计算t的阶乘,然后累加起来(变量sum),就可以了。
思路比较清晰,但有几处错误:
1、a[100]是来捣乱的吧?去掉!顺便把a[t]=t换成x=1,i<a[t]改成i<t即可。
2、sum=sum+x放错位置了,你想加多少啊。把它移到x=1那里去,顺便把x=1替换了,前面已经有了。
这样可能就行了。程序是:
main()
{
int n,x,sum=0,t,i;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x=1;
for(i=1;i<=t;i++)x*=i;
sum+=x;
}
printf(“%d”,sum);
}
二、其实用一个循环就能解决问题,大大简化程序:
main()
{
int n,x=1,sum=0,t;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x*=t;
sum+=x;
}
printf(“%d”,sum);
}
一、按你的思路,从1到n,建立一个循环(循环变量t),然后建立一个内循环(循环变量i),用于计算t的阶乘,然后累加起来(变量sum),就可以了。
思路比较清晰,但有几处错误:
1、a[100]是来捣乱的吧?去掉!顺便把a[t]=t换成x=1,i<a[t]改成i<t即可。
2、sum=sum+x放错位置了,你想加多少啊。把它移到x=1那里去,顺便把x=1替换了,前面已经有了。
这样可能就行了。程序是:
main()
{
int n,x,sum=0,t,i;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x=1;
for(i=1;i<=t;i++)x*=i;
sum+=x;
}
printf(“%d”,sum);
}
二、其实用一个循环就能解决问题,大大简化程序:
main()
{
int n,x=1,sum=0,t;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x*=t;
sum+=x;
}
printf(“%d”,sum);
}
追问
的确是这样。。。非常感谢
展开全部
把sum=sum+x;移到}后、x=1;前。
写得也太复杂了,如下就可以了——
int main(void){
int sum,n,x,t;
scanf("%d",&n);
for(sum=0,x=t=1;t<=n;sum+=x*=t++);
printf("%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言经典例子之求1+2!+3!+...+20!的和
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询