我编写了一个代码,用于比较三个字符,并根据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/

10-11 01:28