我目前在编程类分配的介绍中遇到了问题。我必须编写一个计算数字阶乘的函数。我知道如何做到这一点,你可以在下面看到。但是,作业要求:
通过从main调用它来测试你的功能。在循环中调用函数,输出结果如下:
Factorials:
1: 1
2: 2
3: 6
4: 24
5: 120
… etc.
当数字太大而无法容纳变量时,函数将停止工作。您应该使用哪种数据类型来计算最多因子?
我完全迷失了。我想知道是否有人可以指导我做什么?我在下面粘贴了我的代码:
#include <stdio.h>
int main(void){
int number;
printf("Enter an integer: ");
scanf("%i", &number);
factorial(number);
return 0;
}
int factorial(int number){
int fac = 1, count;
count = number;
while(count > 1){
fac = fac * count;
count = count - 1;
}
printf("The factorial: %i\n", fac );
}
答案 0 :(得分:1)
您应该使用uintmax_t
。它在stdint.h
中定义。
它是一个无符号整数类型,平台支持最大宽度。
答案 1 :(得分:0)
您可以将unsigned long long
类型用于较大的数字,但仅限于某些限制。