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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© EchoWill 中级黑马   /  2014-4-28 00:46  /  1016 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 EchoWill 于 2014-4-28 19:16 编辑
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main(int argc, const char * argv[])
  4. {

  5.     // 依次定义一个字符串数组(相当于字符的二维数组),以及一个字符串作置换
  6.     char a[6] [1024],b[1024];
  7.    
  8.     printf("请依次输入6个字符串:\n");
  9.     // 循环输入6个字符串,依次存放到字符串数组a中
  10.     for (int i = 0; i<6; i++)
  11.     {
  12.         gets(a[i]);
  13.     }
  14.    
  15.     int i ,j;
  16.    
  17.     // 冒泡排序,共比较5轮
  18.     for (i = 0; i<5; i++)
  19.     {
  20.         // 第i轮共比较j-i次
  21.         for (j = 5; j>i; j--)
  22.         {
  23.             // 相邻2个比较,并按照升序排列
  24.             if (strcmp(a[j], a[j-1])<0)
  25.             {
  26.                 strcpy(b, a[j]);
  27.                 strcpy(a[j], a[j-1]);
  28.                 strcpy(a[j-1], b);
  29.             }
  30.         }
  31.     }
  32.    
  33.     // 循环输出字符串数组中的字符串
  34.     for (i=0; i<6; i++) {
  35.         puts(a[i]);
  36.     }
  37.    
  38.     return 0;
  39. }
复制代码

输入字符串后没反应,还提醒不安全。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 Er01c 于 2014-4-28 09:47 编辑
  1. int main(int argc, const char * argv[])
  2. {
  3.     // 定义一个字符串数组(相当于字符的二维数组),最后一个数组元素作为temp(a[6])
  4.     char a[7][10];
  5.         
  6.     printf("依次输入6个字符串:\n");
  7.    
  8.     for (int i = 0; i<6; i++)  gets(a[i]);

  9.    
  10.     for (int i = 0; i<5; i++){
  11.         for (int j = i + 1; j<6; j++){
  12.             
  13.             if (strcmp(a[i], a[j]) > 0){
  14.                 strcpy(a[6], a[i]);
  15.                 strcpy(a[i], a[j]);
  16.                 strcpy(a[j], a[6]);
  17.             }
  18.         }
  19.     }
  20.    
  21.     for (int i = 0; i<6; i++) {
  22.         puts(a[i]);  //printf("%s \n", a[i]);
  23.     }
  24.    
  25.     return 0;
  26. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马