程序设计题 利用求阶乘函数Fact编程计算并输出和n之间所有数的阶乘值,用迭代法计算无符号整型变量n的阶乘,当n>=0时返回n!;否则返回-1例如,若n=3,则应输出6。 int main(void){ int m; do{ printf("请输入m(m>0):"); scanf("%d", &m); }while (m<0); /*增加对输入数据的限 制,确保输入的数据为无符号整数* printf("%d!=%lu\n",m,Fact(m));/*无符号长整型格式输出阶乘值*/ return 0; /*函数功能:用迭代法计算无符号整型变量n的阶乘,当n>=0时返回n!;否则返回-1*/ unsigned int Fact(unsigned int n){
时间: 2024-02-24 21:58:07 浏览: 97
C语言期末考试编程题.pdf
完成题目要求的程序如下:
```c
#include <stdio.h>
unsigned int Fact(unsigned int n) {
if (n < 0) {
return -1;
}
unsigned int result = 1;
for (unsigned int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
int main(void) {
int m;
do {
printf("请输入m(m>0):");
scanf("%d", &m);
} while (m < 0);
printf("%d!=%lu\n", m, Fact(m));
return 0;
}
```
主要思路是:
1. 定义一个函数 `Fact`,接受一个无符号整数参数 `n`,返回 `n` 的阶乘;
2. 在 `Fact` 函数内部,判断参数 `n` 是否小于 0,如果是则返回 -1;
3. 在 `Fact` 函数内部,使用循环迭代计算 `n` 的阶乘;
4. 在 `main` 函数中,通过循环读取用户输入的数据 `m`,并调用函数 `Fact` 计算 `m` 的阶乘;
5. 在 `main` 函数中,使用格式化输出函数 `printf` 输出计算结果。
阅读全文