C语言字符串排序——二维字符数组应用

记录一道基础题,因为本人水平过低,若有大佬访问,请见谅。。

这道题如果用C++实现的话,可以非常简单,就是用string数组,然后sort算法排个序就可以了。但是用C语言的话就相对麻烦一点,不过还是一道水题

用C语言的话,就主要考察二元字符数组那块的知识,因为只有这样才能在数组中存储多个字符串,因为字符串在C语言中就是以字符数组的形式存在的,而在C++中则多了一个string容器,就会省事很多,但是没有办法,因为我的学习顺序和别人不一样,我是先学的C++再补C语言,因此就会有很多地方不习惯,所幸本人本学期课不算很多,还能抽时间来弥补。。

Problem A: 输入3个字符串,按由小到大顺序输出

Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 14572 Solved: 8229

Description

输入3个字符串(长度都小于80),按由小到大顺序输出。

Input

多组测试数据,每组输入三个字符串。

Output

按从小到大输出三个字符串。

Sample Input

oh
my
god
China
Beijing
Hangzhou

Sample Output

god
my
oh
Beijing
China
Hangzhou

代码如下

#include
int main()
{
	char a[4][81];	//字符串数组 
	while(scanf("%s",a[1])!=EOF)
	{
		scanf("%s",a[2]);
		scanf("%s",a[3]);
		int i;
		for(i=1;i<=2;i++)	//选择排序 
		{
			int min=i;
			int j=i+1;
			for(j;j<=3;j++)
			{
				if(strcmp(a[min],a[j])>0)
				{
					min=j;
				}	
			}	
			char d[81];
			strcpy(d,a[min]);
			strcpy(a[min],a[i]);
			strcpy(a[i],d);
		}
		for(i=1;i<=3;i++)
		{
			printf("%s\n",a[i]);
		}
	}
}

挺简单的一道基础题。。

你可能感兴趣的:(C语言练习题)