HDU - 2000 ASCII码排序【水题】

ASCII码排序

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 237624 Accepted Submission(s): 93524

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

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

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

Sample Input
qwe
asd
zxc

Sample Output
e q w
a d s
c x z

Author
lcy

Source
C语言程序设计练习(一)

Recommend
JGShining

问题链接https://vjudge.net/problem/hdu-2000。

问题简述:每行输入三个字符,将各字符从小到大排序输出。

问题分析:利用while循环输入的原理,输入的字符可用数组来存储。每一行输出时,字符中间用一个空格分开。

程序说明:利用while循环,进行排序。(将数组中第一元素跟第二元素比较大小(前者比后者大就利用一个中间变量来交换位置);再将数组中第二元素跟第三元素比较大小;最后将数组中第一元素跟第二元素比较大小;)
  
AC通过的C语言程序如下:

#include <iostream>
using namespace std;
int main()
{
	char a[3];//声明一个数组
	while (cin >> a)//当输入该数组元素时循环
	{
		char s;
		if (a[0] > a[1])
		{
			s = a[0];
			a[0] = a[1];
			a[1] = s;
		}
		if (a[1] > a[2])
		{
			s = a[1];
			a[1] = a[2];
			a[2] = s;
		}
		if (a[0] > a[1])
		{
			s = a[0];
			a[0] = a[1];
			a[1] = s;
		}
		cout <<a[0] <<" " << a[1]<<" " << a[2]<<endl;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43966202/article/details/84882272
今日推荐