题目

  • 题目

Problem Description

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

Input

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

Output

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

Sample Input

qwe
asd
zxc

Sample Output

e q w
a d s
c x z

代码

  1. 代码
#include <stdio.h>
int main () 
{
char a[3],temp;
while (scanf("%s",&a)!=EOF){
    if(a[0]>a[1])
    {
        temp=a[0];
        a[0]=a[1];
        a[1]=temp;
    }
    if(a[0]>a[2])
    {
        temp=a[2];
        a[2]=a[0];
        a[0]=temp;
    }
    if (a[1]>a[2])
    {
        temp=a[2];
        a[2]=a[1];
        a[1]=temp;
    }
    printf("%c %c %c\n",a[0],a[1],a[2]); 
}
return 0;
}

个人见解 ##

-1个人心得
首先要懂得这里的输入输出格式1.多组数据输入的两种表示方法
(1):while(~scanf(“%d %d”,&a,&b)) //多次输入a和b。
~含义是不停重复输入数据,即可以满足用户实现多组数据的输入
(就题论题,C语言中~代表位运算,取反)

EOF的含义是文件结束符(end of file)。在while循环中以EOF作为文件结束标志,也就是说,用scanf函数读取数据,直到遇到文件结束。
2.这道题目最重要的就是引入一个介值temp满足两个数组之间的数据交换
这里有一个技巧
temp=a[2];
a[2]=a[1];
a[1]=temp;
斜着看数据应是对应的(靠个人理解)