C语言:求1+2!+3!+...+20!的和
求1+2!+3!+...+20!的和#include<stdio.h>main(){longa=0,t=1;inti,k;for(k=1;k<=20;k++)for(i=...
求1+2!+3!+...+20!的和
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++)
for(i=k;i>0;--i)
t=t*i;
a=a+t;
printf("1+2!+3!+…+20!=%ld",a);
}
哪里出问题了???? 展开
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++)
for(i=k;i>0;--i)
t=t*i;
a=a+t;
printf("1+2!+3!+…+20!=%ld",a);
}
哪里出问题了???? 展开
3个回答
展开全部
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++){
for(i=k;i>0;--i){
t=t*i;
a=a+t;
}
}
printf("1+2!+3!+…+20!=%ld",a);
}
少了大括号,所以循环只执行了t=t*i
而a=a+t作为循环外执行了1次
更多追问追答
追问
可是结果不对啊、、
追答
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++){
for(i=k;i>0;--i){
t=t*i;
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
其实没仔细看这个,你是想这样括
展开全部
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=10;k++)
{
t=1;
for(i=k;i>0;i--)
t=t*i;
printf("%d\n",t);
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
内循环后t重新赋值1;
a=a+t;要再循环里面
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=10;k++)
{
t=1;
for(i=k;i>0;i--)
t=t*i;
printf("%d\n",t);
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
内循环后t重新赋值1;
a=a+t;要再循环里面
追问
结果等于多少啊、貌似还不行啊
追答
你20!超出范围了,你把数定小点
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for循环如果不加大括号只作用于下一条语句
所以是不是因为这个
所以是不是因为这个
更多追问追答
追问
加上之后结果不太对啊、、
追答
#include
main()
{
long a=0,t=1;
int i,k;
for(k=1;k0;--i)
{
t=t*i;
}
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询