A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 tony_ygz 于 2014-5-7 10:54 编辑

如题,接收字符串如:“asdas”,"sdasff","asafasf",然后比较这几个字符串的大小按升序排列输出?

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

4 个回复

倒序浏览
#include<stdio.h>
#include<string.h>
int main()
{
        char ch[6];
        for(int ix=0;ix<6;ix++)
        {
                ch[ix]=getchar();
       
        }
        size_t i=strlen(ch);
        int x;
        char tem;
        while(i>1)
        {
                x=1;
                for(int j=1;j<i;++j)
                {
                        if( ch[j]> ch[j+1])
                        {
                                tem=ch[j];
                                ch[j]=ch[j+1];
                                ch[j+1]=tem;
                                x=j;
                        }
               
                }
                i=x;
        }
       
        for(int ix=0;ix!=6;++ix)
        {
                printf("%c",ch[ix]);
        }
        return 0;
       
}
冒泡排序法

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
简单说下我的思路,楼主可以试试自己写:
1:首先,用什么存储输入的字符串,一种可以用二维数组:char name[2][10] = {“jack” , “rose”};
     或者用指针数组:char *name[5] = {“java” , “rose”};  接收键盘输入时用gets方法,不要用scanf
     因为scanf不能接收空格输入;
2:把输入的字符串存储在二维数组中后,接下来就是比较了,比较两个字符串的大小,c自带了一个方法:strcmp,
     在头文件 <string.h>中,include它就能用了,这个方法接收两个字符串参数,返回int型变量,这个两个参数
     可以是常量,也可以是变量,比如:
      int i = strcmp("abc", "bcd"); // 返回-1,参数1小于参数2,0:相等,1大于;这个应该很好理解;
3:接下来就是一个循环比较了;
     strcmp这个方法如果不想用,自己也可以写,但是比较麻烦,又要每个字符逐一比较ASCII码;
思路还是挺简单的,耐心点应该能写出来,希望对楼主有帮助

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
godlike 发表于 2014-5-7 09:49
简单说下我的思路,楼主可以试试自己写:
1:首先,用什么存储输入的字符串,一种可以用二维数组:char nam ...

恩,谢了,学习了
回复 使用道具 举报
子城伯涵 发表于 2014-5-7 09:04
#include
#include
int main()

恩,谢谢你的分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马