题目
- 题目
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
代码
- 代码
#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;
斜着看数据应是对应的(靠个人理解)