黑马程序员技术交流社区

标题: C语言编程,不知道是哪里出错了,运行结果不正确,求大... [打印本页]

作者: 54hxd52lj    时间: 2014-5-31 20:28
标题: C语言编程,不知道是哪里出错了,运行结果不正确,求大...
本帖最后由 54hxd52lj 于 2014-6-2 10:23 编辑

从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。
  1. #include<stdio.h>    //头文件
  2. #include<string.h>    //头文件
  3. void main()     //主函数
  4. {
  5. char string[20];    //定义数组string,容量为20个字符
  6. char str[6][20];    //定义二维数组,共6个,每个20个字符
  7. char t[20];      //定义数组temp,容量为20个字符
  8. int i,j;      //定义整形变量
  9. for(i=1;i<=6;i++)      //进行6次循环
  10.     gets(str[i]);      //循环为6个一维数组赋值
  11. for(j=1;j<=6;j++)      //进行6次循环
  12. {
  13.          for(i=1;i<=6-j;i++)    //进行5次循环
  14.          {
  15.             if(strcmp(str[i],str[i+1])>0)   //判断,如果该数组比下一个数组大,执行
  16.         {
  17.             strcpy(t,str[i]);            //将该数组复制到数组temp中
  18.             strcpy(str[i],str[i+1]);     //将下一个数组复制到该数组中
  19.             strcpy(str[i+1],t);          //将数组temp复制到该数组中
  20.                 }   
  21.     }
  22. }
  23. for(i=1;i<=6;i++)        //进行6次循环
  24. printf("%s\n",str[i]);   //从小到大输出6个数组
  25. }
复制代码

作者: 夏沫的黄昏′    时间: 2014-6-1 11:40
冒泡排序的算法是没错的。  char str[6][20];  你的数组开小了 开成7就够了
作者: 54hxd52lj    时间: 2014-6-2 10:23
夏沫的黄昏′ 发表于 2014-6-1 11:40
冒泡排序的算法是没错的。  char str[6][20];  你的数组开小了 开成7就够了

哦哦,多谢啦,我改过来试试。:handshake




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