帮忙解决道题目

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:32:41
#include<stdio.h>
#include<stdlib.h>
void main()
{
int n,m,j=1;
printf("请输入一个小于20的正整数");
scanf("%d",&n);
if(n>=20)
{
printf("数字越界,程序结束!");
exit(1);
}
m=n;
while (n>=1)
{
j=j*n;
n--;
}
printf("%d的阶乘为%d\n",m,j);
getch();
}

我用win-tc结果当数大于8是结果不对

运行下printf("%d",sizeof(int));的结果
如果输出时2的话,说明int是2个字节的,那么最大能表示的值是65536
8的阶乘是40320,9的阶乘是362880,已经溢出了
int是2个字节还是4个字节和编译器有关