杭电oj2000-C语言

时间:2024-01-01 19:14:21

题目

  • 题目

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;

斜着看数据应是对应的(靠个人理解)