#include<stdio.h>
int main(){
int x,i,m=1;
scanf("%d",&x);
for(i=1;i<=x;i++){
m*=i;
}
printf("%d",m);
return 0;
}

for循环求29的阶乘,结果为什么会是负数?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2021-12-08 16:01关注
29的阶乘用int型是不够的,long long都不够,用double吧
#include<stdio.h> int main(){ int x,i; double m=1; scanf("%d",&x); for(i=1;i<=x;i++){ m*=i; } printf("%g",m); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用