C语言字符串排序——二维字符数组应用
记录一道基础题,因为本人水平过低,若有大佬访问,请见谅。。这道题如果用C++实现的话,可以非常简单,就是用string数组,然后sort算法排个序就可以了。但是用C语言的话就相对麻烦一点,不过还是一道水题用C语言的话,就主要考察二元字符数组那块的知识,因为只有这样才能在数组中存储多个字符串,因为字符串在C语言中就是以字符数组的形式存在的,而在C++中则多了一个string容器,就会省事很多,但是没
记录一道基础题,因为本人水平过低,若有大佬访问,请见谅。。
这道题如果用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<stdio.h>
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]);
}
}
}
挺简单的一道基础题。。
如果觉得有帮助,可以关注一下我的公众号,我的公众号主要是将这些文章进行美化加工,以更加精美的方式展现出来,同时记录我大学四年的生活,谢谢你们!
更多推荐
所有评论(0)