简易数学计算工具该程序有以下几个主要功能:(1)选项菜单集成各个计算功能函数(2)求任意数的阶乘;(3)求组合数;(4)求任意两个整数的最大公约数和最小公倍数;(5)判断任意数是否是素数;(6)显示菲波拉契数列的前N项。
已回答,莫辜负
————————————————————————————————————————
#include <stdio.h>
// 求n的阶乘
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// 求组合数C(m, n)
int combination(int m, int n) {
return factorial(m) / (factorial(n) * factorial(m - n));
}
// 求最大公约数
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 判断素数
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 菲波拉契数列
void fibonacci(int n) {
int a = 0, b = 1, c;
printf("Fibonacci sequence for n=%d:\n", n);
printf("%d %d ", a, b);
for (int i = 2; i < n; i++) {
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
printf("\n");
}
int main() {
int choice;
int m, n;
printf("Math Calculator\n");
printf("==================\n");
printf("1. Factorial\n");
printf("2. Combination\n");
printf("3. GCD and LCM\n");
printf("4. Prime Number\n");
printf("5. Fibonacci sequence\n");
printf("Enter your choice (1-5): ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the number n: ");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n));
break;
case 2:
printf("Enter the values of m and n: ");
scanf("%d %d", &m, &n);
printf("C(%d, %d) = %d\n", m, n, combination(m, n));
break;
case 3:
printf("Enter two numbers: ");
scanf("%d %d", &m, &n);
printf("GCD = %d\n", gcd(m, n));
printf("LCM = %d\n", lcm(m, n));
break;
case 4:
printf("Enter a number: ");
scanf("%d", &n);
if (isPrime(n)) {
printf("%d is a prime number.\n", n);
} else {
printf("%d is not a prime number.\n", n);
}
break;
case 5:
printf("Enter the value of n: ");
scanf("%d", &n);
fibonacci(n);
break;
default:
printf("Invalid choice.\n");
}
chatgpt:点个赞
#include <stdio.h>
// 计算阶乘的函数
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
// 计算组合数的函数
int combination(int n, int m) {
int numerator = factorial(n);
int denominator = factorial(m) * factorial(n-m);
return numerator / denominator;
}
// 计算最大公约数的函数
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a%b);
}
}
// 计算最小公倍数的函数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 判断素数的函数
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i=2; i*i<=n; i++) {
if (n%i == 0) {
return 0;
}
}
return 1;
}
// 计算菲波拉契数列的函数
void fibonacci(int n) {
int a = 0, b = 1;
for (int i=0; i<n; i++) {
printf("%d ", a);
int c = a + b;
a = b;
b = c;
}
printf("\n");
}
int main() {
int choice;
while (1) {
printf("\n");
printf("请选择功能:\n");
printf("1. 计算阶乘\n");
printf("2. 计算组合数\n");
printf("3. 计算最大公约数和最小公倍数\n");
printf("4. 判断素数\n");
printf("5. 显示菲波拉契数列\n");
printf("0. 退出程序\n");
printf("请选择:");
scanf("%d", &choice);
if (choice == 0) {
break;
} else if (choice == 1) {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int result = factorial(n);
printf("%d的阶乘是%d\n", n, result);
} else if (choice == 2) {
int n, m;
printf("请输入两个整数,用空格隔开:");
scanf("%d %d", &n, &m);
int result = combination(n, m);
printf("C(%d,%d)=%d\n", n, m, result);
} else if (choice == 3) {
int a, b;
printf("请输入两个整数,用空格隔开:");
scanf("%d %d", &a, &b);
int gcd_result = gcd(a, b);
int lcm_result = lcm(a, b);
printf("%d和%d的最大公约数是%d,最小公倍数是%d\n", a, b, gcd_result, lcm_result);
} else if (choice == 4) {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (is_prime (n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
} else if (choice == 5) {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
printf("菲波拉契数列的前%d项是:\n", n);
fibonacci(n);
} else {
printf("无效选项,请重新选择\n");
}
}
return 0;
}
此程序包含一个菜单,提示用户选择要执行的功能。当用户输入不同的选项时,程序调用相应的函数执行相应的操作。
如果要将此程序编译并运行,请使用C编译器,例如gcc,并将程序保存为一个名为“calculator.c”的文件。然后,在命令行中导航到该文件所在的目录,并运行以下命令:
gcc calculator.c -o calculator
./calculator
这将编译程序并将其保存为一个名为“calculator”的可执行文件。然后,运行“./calculator”命令即可启动程序并开始使用。
不知道你这个问题是否已经解决, 如果还没有解决的话:#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
int main()
{
char arr1[] = { "you are handsome!!!!!!!" };
char arr2[] = { "***********************" };
int left = 0;
int sz = sizeof(arr1) / sizeof(arr1[0]) ;
int right = sz-2;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
Sleep(1000);
system("cls");
printf("%s\n", arr2);
}
return 0;
}