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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /**
  2. *9.从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。(C语言)
  3. */

  4. #include <stdio.h>
  5. int main(int argc, const char * argv[])
  6. {
  7.     //1.从内存中开辟6个100长的字符串空间
  8.     char string1[100];
  9.     char string2[100];
  10.     char string3[100];
  11.     char string4[100];
  12.     char string5[100];
  13.     char string6[100];
  14.    
  15.     //2.新建一个字符串数组,保存各个字符串的地址
  16.     char* stringGroup[6]={string1,string2,string3,string4,string5,string6};

  17.     //3.定义一个变量保存字符串的长度
  18.     unsigned long length[6];
  19.    
  20.     //4.系统提示用户连续输入6个字符串 回车确定
  21.     printf("请依次输入6个字符串,包含数字和字母,回车确定\n");
  22.    
  23.     //5.循环提示用户 连续输入字符串
  24.     for(int i = 0;i < 6;i++)
  25.     {
  26.         
  27.         //5.1提示用户输入第N个字符串
  28.         printf("请输入第%d个字符串\n",(i+1));
  29.         
  30.         //5.2保存第n个字符串到字符串指针数组的n项
  31.         scanf("%s",stringGroup[i]);
  32.    
  33.         //5.3获取相应的字符串的长度并一次保存到长度数组
  34.         length[i] = strlen(stringGroup[i]);
  35.         
  36.     }
  37.    
  38.     //6.新建2个变量 用作交换操作的中间变量
  39.     char *pSwap;
  40.     unsigned long swap;
  41.    
  42.     //7.冒泡排序
  43.     for(int i = 0;i < 6;i++)
  44.     {
  45.         for(int j = i+1;j < 6;j++)
  46.         {
  47.             //7.1当长度数组当前元素大于后面个元素的时候
  48.             if(length[i] > length[j])
  49.             {
  50.                 //7.1.1交换相应索引的长度数组的值
  51.                 swap = length[i];
  52.                 length[i] = length[j];
  53.                 length[j] = swap;
  54.                
  55.                 //7.1.2交换相应索引的字符串数组的值
  56.                 pSwap = stringGroup[i];
  57.                 stringGroup[i] = stringGroup[j];
  58.                 stringGroup[j] = pSwap;
  59.             }
  60.             
  61.         }
  62.     }
  63.    
  64.     //8.循环打印出字符串数组
  65.     for(int i = 0;i < 6;i++)
  66.     {
  67.         printf("%s  ",stringGroup[i]);
  68.     }
  69.     return 0;
  70. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马