黑马程序员技术交流社区

标题: 看一下这个c的排序题 [打印本页]

作者: lichuanlong    时间: 2016-5-29 12:01
标题: 看一下这个c的排序题
#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;
}
//有什么问题 崩了呢???
作者: tanqichun    时间: 2016-6-2 13:27
来学习一下,顶一个
作者: 张小景    时间: 2016-6-2 20:05
要考虑复制到另一个字符串数组中长度是否够
作者: huzhiqiang    时间: 2016-6-2 21:04
这个是要实现啥需求哦, 看到后面就不知道了 后面是要打印出来吧,后面那个gets应该是puts吧`````
作者: 冬以    时间: 2016-6-3 23:12
来学习学习
作者: dongkuan    时间: 2016-6-3 23:43
这个[1][6]是一行六列,应该是个一维字符数组吧
作者: 浮云我想听你说    时间: 2016-6-4 21:38
声明数组最好用指针变量来表示 ,这样无视元素的长度
作者: 浮云我想听你说    时间: 2016-6-4 21:40
试试指针数组吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2