我编写了一个代码,用于比较三个字符,并根据ASCII数字将其从最高优先级到最低优先级进行排序。首先输入要解决的许多情况,然后输入三个字符进行排序。例如,如果我们输入& ^ %
,我们期望的输出是Case #1: % & ^
。
#include <stdio.h>
int main(){
int cases, counter = 1;
char ch1, ch2, ch3, storage;
scanf("%d", &cases);
getchar();
while(counter <= cases){
scanf("%c %c %c", &ch1, &ch2, &ch3);
//process
while(ch1 < ch2 < ch3){
if(ch1 < ch2){
storage = ch1;
ch1 = ch2;
ch2 = storage;
}
if(ch2 < ch3){
storage = ch2;
ch2 = ch3;
ch3 = storage;
}
}
//end process
printf("case #%d: %c %c %c\n", counter, ch1, ch2, ch3);
counter++;
}
return 0;
}
但是在我输入三个字符后卡住了,它不会显示输出,在下一种情况下我也不能输入任何字符。
最佳答案
您陷入了while循环中,请尝试重新格式化比较。
while((ch1 < ch2) || (ch2 < ch3))
关于c - 根据ASCII优先级比较字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52809121/