用户输入一个数字,该数字将传递给 calcFactorial 函数。只要数字大于零,循环就会重复。该数字将乘以结果中存储的任何内容。每次重复循环时,x 都会减一。
当我测试它时,程序只能运行到 12。之后我会得到错误的数字。数字太大了吗?我不确定问题是什么。
#include <stdio.h>
long calcFactorial(int x){
long result = 1;
while(x > 0){
result *= x;
x--;
}
return result;
}
int main(){
int x;
printf("Enter a number: ");
scanf(" %d",&x);
printf("%d",calcFactorial(x));
}
Run Code Online (Sandbox Code Playgroud)
printf("%d",calcFactorial(x));
Run Code Online (Sandbox Code Playgroud)
calcFactorial返回 a long,因此打印它的格式说明符应该是%ld而不是%d。