我输入整数的时候,1~12得到的值都是对的,从13开始得数就不对了,我知道是整型变量存储的数据超出范围了,应该怎么处理?下面是代码。
#include <stdio.h>
int main()
{
int m=1, k, n, o=1; //n:公式中的n; m:动态的结果; o:执行的次数 k:动态的被乘数
printf("请输入一个n的值:\n");
scanf("%d", &n);
int njy=n-1; //njy:即“n-1”
while(o<=njy)
{
printf("%d*", o);
k=o++;
m=m*k;
}
m=m*n;
printf("%d=%d\n", n, m);
printf("按任意键退出\n");
getch();
return 0;
}
上面的代码我考虑到了运行的时候动态显示过程,即输入3,就显示1*2*3=6,而不是直接显示6,所以定义了n-1.
我把编译好的EXE文件上传到了网盘,各位不方便编译的可以直接下载运行,网盘地址:
http://pan.baidu.com/s/1jGgfrp0