输入三个字符,按个字符的ASCII码大小顺序输出这三个字符

C语言题目

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

解题思路

算法一:

  1. 将其中二者进行比较
  2. 上述1比较后的大者与剩余者比较,得出最大者(max)
  3. 上述1比较后的小者与剩余者比较,得出最小者(min)
  4. 结合2、3得出的,剩余的便是中者(mid)

算法二:

  1. 待补充…….

初步代码实践

#include<stdio.h>
int main(){
    char a,b,c,max,mid,min;
    scanf("%c\r%c\r%c",&a,&b,&c);
    if('a'>'b'){
        if('a'>'c'){
            max=a;
            if('b'>'c'){
                min=c;
                if('b'>'c'){
                    min=c;
                    mid=b;
                }else{
                    min=b;
                    mid=c;
                }
            }
        }else{
            max=c;
            mid=a;
            min=b;
        }
    }else{
        if('a'>'c'){
            min=c;
            max=b;
            mid=a;
        }else{
            min=a;
            if('c'>'b'){
                max=c;
                mid=b;
            }else{
                max=b;
                mid=c;
            }
        }
    }
    printf("max=%c\nmid=%c\nmin=%c\n",max,mid,min);
    return 0;
}

代码优化

//优化版
#include<stdio.h>
int main(){
    char a,b,c,max,mid,min;
    scanf("%c\r%c\r%c",&a,&b,&c);
    max=(a>b)?((a>c)?a:c):((b>c)?b:c);
    min=(a<b)?((a<c)?a:c):((b<c)?b:c);
    mid=a+b+c-max-min;
    printf("max=%c\nmid=%c\nmin=%c\n",max,mid,min);
    return 0;
}
© 版权声明
THE END
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞3打赏 分享
评论 共2条

请登录后发表评论