使用double类型可以吗
时间: 2023-10-28 08:04:33 浏览: 74
float、double类型介绍.zip
使用double类型也可以解决这个问题,因为double类型的范围比int类型更大。你可以尝试修改程序如下:
```c
#include <stdio.h>
double jiecheng(int n) {
if(n==1||n==2)
return n;
else
return (double)n*jiecheng(n-1);
}
int main() {
int n;
scanf("%d",&n);
printf("%.0lf",jiecheng(n));
return 0;
}
```
这个程序使用了double类型来存储计算结果,它的范围比int类型更大,可以避免计算17的阶乘时出现负值的问题。在输出结果时,使用了%.0lf的格式控制符来输出double类型的整数部分。
阅读全文