C语言:求1+2!+3!+...+20!的和

2025-01-02 21:07:34
推荐回答(3个)
回答1:

#include 
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次

回答2:

#include
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;要再循环里面

回答3:

for循环如果不加大括号只作用于下一条语句
所以是不是因为这个