ASCII码排序 您所在的位置:网站首页 ascii码从小到大的顺序 ASCII码排序

ASCII码排序

2024-07-11 20:17| 来源: 网络整理| 查看: 265

ASCII码排序 题目描述题目理解第一种方式--if判断第二种方式--数组排列 源代码

题目描述

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

Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格。

Output 对于每组输入数据,输出一行,字符中间用一个空格分开。

Sample Input qwe asd zxc

Sample Output e q w a d s c x z

题目理解

通过题目我们可知,本题是要求我们根据ASCII码对我们输入的字符进行比较,通过ASCII码的大小将字符按从小到大的顺序输出。 本题要求每3个字符进行比较,因此可以有两种方法解决

第一种方式–if判断

比较字符只有三个数,我们可以通过if判断语句直接对3个字符进行判断。 输入三个字符,先将前两个数据进行比较,当前一个字符的ASCII码值大于后一个字符时,我们可以将两个字符通过第三方字符进行交换。两个字符交换后,再重复对后两个字符进行大小判断、交换。此时,已经将最后一个字符交换成为最大的字符了,再将前两个字符进行比较、交换,就将全部字符按照从小到大的顺序排列。

第二种方式–数组排列

第二种方式在只有三个数据这样小数量的排列其实不太适用,本次采用选择排列的方式进行解决,具体选择排列的讲解请参考选择排列讲解

两种方式主要的区别在于第一种方式采用的是字符输入,而第二种方式则是采用了字符数组输入,两者其实大同小异。

源代码 #include #include int main() { char a,b,c,d; while(scanf("%c%c%c",&a,&b,&c)!=EOF) { if(a>b) { d=a; a=b; b=d; } if(b>c) { d=c; c=b; b=d; } if(a>b) { d=a; a=b; b=d; } printf("%c %c %c\n",a,b,c); getchar(); } return 0; } #include #include int main() { char a,b,c,d; char arr[3]; while(scanf("%s",arr)!=EOF) { for (int i = 0; i < 3-1; i++) { int minIndex = i; for (int j = i+1; jarr[j]) { minIndex = j; } } if(minIndex != i) { arr[i] = arr[i]^arr[minIndex]; arr[minIndex] = arr[i]^arr[minIndex]; arr[i] = arr[i]^arr[minIndex]; } } printf("%c %c %c\n",arr[0],arr[1],arr[2]); } return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有