我编写了一个代码,将三个字符进行比较,并根据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;
}
但是在我输入三个字符后卡住了,它不会显示输出,并且我不能为下一种情况输入任何字符。
答案 0 :(得分:0)
您陷入了while循环中,请尝试重新格式化比较。
while((ch1 < ch2) || (ch2 < ch3))