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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lichuanlong 中级黑马   /  2016-5-29 12:01  /  1486 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    //二维字符数组
    char name[1][6];
    //定义一个字符变量用来存储排序后的字符数组
    char temp[100];
    //遍历的同时可以提示输入
    for(int i =0;i<6;i++)
    {
        printf("请输入第%d个字符串(仅是数字和字母)\n",i+1);
        //清空一下变量的空间
        rewind(stdin);
        //得到每次输入的字符
        gets(name[i]);
        //遍历进行排序-> 冒泡排序
        for(int i = 0;i < 6; i++)
        {
            for(int j = 0;j < 6-i-1; j++)
            {
                //定义变量用来确定比较的值
                int res = strcmp(name[j],name[j+1]);//strcmp是比较函数
                if(res >0)
                {
                    //将一组字符串复制到另一组字符串当中
                    //string.h头文件中的函数strcpy- > 和用变量来交换排序的值是相同的效果
                    strcpy(temp, name[j]);
                    strcpy(name[j],name[j+1]);
                    strcpy(name[j+1],temp);//依次赋最大值
                }
            }
        }
    }
   
  //遍历打印循环后的字符串
    for(int i = 0;i<6;i++)
    {
        printf("输出排序后的字符串\n");
        gets(name[i]);
    }
    return 0;
}
//有什么问题 崩了呢???

7 个回复

倒序浏览
来学习一下,顶一个
回复 使用道具 举报
要考虑复制到另一个字符串数组中长度是否够
回复 使用道具 举报
这个是要实现啥需求哦, 看到后面就不知道了 后面是要打印出来吧,后面那个gets应该是puts吧`````
回复 使用道具 举报
来学习学习
回复 使用道具 举报
这个[1][6]是一行六列,应该是个一维字符数组吧
回复 使用道具 举报
声明数组最好用指针变量来表示 ,这样无视元素的长度
回复 使用道具 举报
试试指针数组吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马