#include<stdio.h> int reslut(int n) { int end; if(n<0) { printf("输入错误!\n"); return 0; } else if(n==0||n==1) { end=1; } else { end=reslut(n-1)*n; } return end; } int main() { int x; scanf("%d",&x); printf("%d的阶乘是%d\n",x,reslut(x)); return 0; }
为什么只能算到31?32、33的时候显示结果为一个负数,34以及更大的数显示结果为0。小白求教,不懂为什么。
紫泉
TYUTssh
相关分类