gpt4 book ai didi

c - 如何从高到低排列多个计数器并显示计数器名称标签(这是一个字符)?

转载 作者:行者123 更新时间:2023-11-30 14:52:44 24 4
gpt4 key购买 nike

过去三周我在大学里一直在学习 C 编程,这是我的第一份作业,我已经自己完成了 95%,但到了这部分我就卡住了!所以问题问的是你在程序中输入4个差异字符(“N”,“R”,“F”,“T”),我要做的是每次出现字符时进行计数,然后显示数字每个字符出现的次数并按降序排列,如下所示:

enter image description here

我已经对所有内容进行了排序,剩下的就是将正确的字符链接到最高的计数器,现在我可以使用大量 IF 来完成此操作,但我认为这不是一个好方法。

#include <stdio.h>
#include <math.h>


printf("Enter answers (R-radio, T-tv, N-newspaper, F-facebook, * to finish\n");
ch = getch();
putch(ch);
while (ch != '*') {
switch (ch) {

case 'R':
rc++;

break;
case 'T':
tc++;

break;
case 'F':
fc++;
break;
case 'N':
nc++;

break;

default:
if (error == 0) {
temp1 = ch;
error = 1;
}
break;


}
ch = getch();
putch(ch);

}
a = rc;
b = nc;
c = tc;
d = fc;

int i;

for (i = 0; i < 4; i++) {

if (d > c) {
temp = c;
c = d;
d = temp;
}
if (c > b) {
temp = b;
b = c;
c = temp;
}
if (b > a) {
temp = a;
a = b;
b = temp;

}

}

if (error == 1) {
printf("\nIllegal input : %c\n", temp1);
}
else {
printf("\n1. %c (%d)",a, a);
printf("\n2. R (%d)", b);

printf("\n3. F (%d)", c);

printf("\n4. T (%d)", d);
}

return 0;
}

最佳答案

嗯,我认为另一种解决方案是为每个字母填充一个字符串数组[2],一个元素用于该字母,另一个元素用于计数器。您可以使用第二个元素进行比较。

关于c - 如何从高到低排列多个计数器并显示计数器名称标签(这是一个字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47592027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com