帮我用c语言编程实现程序: (1) 计算n!并打印结果;(2)输入n值,打 印从1-n之间所有整数的阶乘; (3)计算1!+21+3!+. + n并打印结果; (4) 显示功能列表清单; 以上功能通过函数实现,由一个主函数内按功能清单列表选 择调用。
时间: 2024-10-11 18:15:15 浏览: 38
计算 S=1!+2!+3!+...+N! C语言代码
以下是用C语言编写的一个简单的程序,实现了上述要求的功能:
```c
#include <stdio.h>
// 定义阶乘函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 打印n的阶乘
void printFactorial(int n) {
printf("The factorial of %d is: %llu\n", n, factorial(n));
}
// 计算并打印1! + 2! + ... + n!
void sumOfFactorials(int n) {
unsigned long long sum = 0;
for (int i = 1; i <= n; ++i) {
sum += factorial(i);
}
printf("Sum of factorials from 1 to %d: %llu\n", n, sum);
}
// 功能列表显示
void displayMenu() {
printf("\nFunction List:\n");
printf("1. Calculate and Print Factorial\n");
printf("2. Sum of Factorials\n");
printf("3. Exit Program\n");
}
// 主函数
int main() {
int choice, n;
do {
clearScreen(); // 假设clearScreen是一个清屏函数,实际应用需要你自己实现
displayMenu();
printf("Enter your choice (1-3): ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter a number: ");
scanf("%d", &n);
printFactorial(n);
break;
case 2:
printf("Enter a limit for the sum: ");
scanf("%d", &n);
sumOfFactorials(n);
break;
case 3:
printf("Exiting...\n");
break;
default:
printf("Invalid choice. Please try again.\n");
}
} while (choice != 3); // 继续循环直到用户选择退出
return 0;
}
```
这个程序包含了四个函数:`factorial()`、`printFactorial()`、`sumOfFactorials()` 和 `displayMenu()`,分别对应功能(1)、(2)、(3)。主函数`main()` 中通过`switch-case`结构根据用户的选择调用相应功能。
注意:由于C标准库并没有提供直接的清屏函数,这里假设`clearScreen()` 是你需要自行实现的功能。在实际项目中,你可以使用`fflush(stdout)` 或者第三方库如`ncurses` 来实现清屏。
阅读全文