新手编写
#include<stdio.h>
void main()
{ long i,j=1,s=0;
for(i=1;i<=10;i++)
{ j=j*i;
s=s+j;
}
printf("%d",s);
getch();
}
为毛答案是负的...
第1个回答 2014-03-31
/*
4037913
Press any key to continue
*/
#include<stdio.h>long fact(int n) {
int i;
long fac = 1;
for(i = 2; i <= n; ++i) fac *= i;
return fac;
}
void main() {
int i;
long sum = 0;
for(i = 1; i <= 10;i++)
sum += fact(i);
printf("%ld\n",sum);
getchar();
}本回答被提问者采纳
第2个回答 2014-03-31
最后输出是不是应该输出 %ld
听说有的编译器int类型的是2个字节,会溢出追问
听说有的编译器int类型的是2个字节,会溢出追问
哦,是这样,非常感谢!!
第3个回答 2014-03-31
你要算的是10!+9!...+1!这个表达式么?追问
是的