在主函数中输入一个10以内的正整数存放在变量m中。 在自定义函数factorial中求该正整数的阶乘。在主函数中调用factorial函数,在主函数输出结果。用c语言解决
时间: 2024-12-18 09:26:46 浏览: 5
在 C 语言中,你可以按照以下步骤编写代码来实现这个需求:
首先,你需要定义一个名为 `factorial` 的函数,用于计算给定正整数 `m` 的阶乘。阶乘是指所有小于及等于该数的正整数相乘的结果。
```c
#include <stdio.h>
// 自定义函数:计算阶乘
unsigned long long factorial(int m) {
if (m == 0 || m == 1) { // 0! 和 1! 都等于 1
return 1;
} else {
unsigned long long result = 1;
for (int i = 1; i <= m; i++) {
result *= i;
}
return result;
}
}
int main() {
int m;
printf("请输入一个10以内的正整数:");
scanf("%d", &m); // 输入并存储在变量m中
// 调用factorial函数计算阶乘
unsigned long long fact = factorial(m);
printf("数字 %d 的阶乘是:%llu\n", m, fact);
return 0;
}
```
在这个程序中,`factorial` 函数通过循环实现了阶乘计算,并且使用了 `unsigned long long` 类型来存储结果,以防计算过程中因数值过大而导致溢出。
阅读全文