今年刚刚进入大学,用最基础的c语言知识敲了一个高中的数学计算。(vs2022)
同时也想让大佬看看能不能有优化的地方
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
int d = 1;
int e = 1;
int i = 1;
int g = 1;
printf("请选择计算排列(A)还是组合(C)\n");
printf("排列请输入1,组合请输入2\n");
scanf("%d", &a);
if (a == 1) {
printf("请输入m,n\n");
printf("请注意m应大于等于n\n");
int b = 0;
int c = 0;
int f;
int t = 1;
int u = 1;
scanf("%d %d", &b, &c);
int w = b - c;
if (b == c) {
while (t <= b) {
u *= t;
t++;
}
printf("结果为%d", u);
}
if (b > c) {
while (i <= b) {
d *= i;
i++;
}
while (g <= w) {
e *= g;
g++;
}
f = d / e;
printf("结果为%d", f);
}
}
else {
printf("请输入m,n\n");
printf("请注意m应大于等于n\n");
int h = 0;
int j = 0;
int k;
int l = 1;
int m = 1;
int o = 1;
int q = 1;
int r = 1;
int s = 1;
scanf("%d %d", &h, &j);
while (l <= h) {
q *= l;
l++;
}
while (m <= j) {
r *= m;
m++;
}
int n = h - j;
if (n == 0) {
printf("结果为1\n");
}
else {
while (o <= n) {
s *= o;
o++;
}
int ss = r * s;
int p = q / ss;
printf("结果为%d\n", p);
}
}
return 0;
}