有没有办法在 C 语言中比较没有数组的九个整数?



最近,我必须做一个编程项目,它正在制作一个课程注册系统。其中一条说明是按升序对这 9 门课程进行编码。我已经将这些课程代码设置为整数,但我不知道如何在不使用数组的情况下制作它......谁能教我?非常感谢!我采用的变量名称是代码1

,代码2,代码3,代码4,代码5,代码6,代码7,代码8,代码9...

按升序排列的代码。
但我不知道如何在不使用数组的情况下制作它

不使用数组是一个糟糕的主意,但可能对学习有好处。

以某种方式将问题分解为更小部分的关键思想。

下面使用递归解决方案,可能会导致递归深度为n*n- 不是那么好。 让 OP 来考虑更有效的方法并将其扩展到 9 个变量。

#include <stdio.h>
#include <stdlib.h>
void swap(int *v1, int *v2) {
int t = *v1;
*v1 = *v2;
*v2 = t;
}
void sort4(int *v1, int *v2, int *v3, int *v4) {
if (*v1 > *v2) swap(v1,v2);
else if (*v2 > *v3) swap(v2,v3);
else if (*v3 > *v4) swap(v3,v4);
else return;
sort4(v1,v2,v3,v4);
return;
}
int main(void) {
for (int i=0; i< 10; i++) {
int code1,code2,code3,code4;
code1 = rand()%1000;
code2 = rand()%1000;
code3 = rand()%1000;
code4 = rand()%1000;
sort4(&code1, &code2, &code3, &code4);
printf("%3d %3d %3d %3dn", code1, code2, code3, code4);
}
}

输出

262 529 743 933
256 508 700 752
119 256 351 711
108 393 705 843
169 330 366 932
847 868 917 972
223 549 592 980
164 169 427 551
190 624 635 920
310 484 862 944

最新更新