黑马程序员技术交流社区

标题: 输入6个字符串,按照从小到大排序并打印,求解答,C [打印本页]

作者: chasedream    时间: 2014-12-29 09:50
标题: 输入6个字符串,按照从小到大排序并打印,求解答,C
想了半天,能让其长度进行排序,没法让其按长度排序输出,看看大家代码怎么写的。代码还是写的少啊

作者: 邓明    时间: 2014-12-29 11:46
可以新建一个整数数组,存放字符串长度
复制一个数组然后排序,根据排序结果和原数组进行比较,再输出字符串
作者: 从今以后    时间: 2014-12-29 12:03
想复杂了,这道题用strcmp函数比较字符串就好了。
作者: chasedream    时间: 2014-12-29 12:15
  1. #include<stdio.h>
  2. #include<string.h>

  3. int main()
  4. {
  5.         char str[6][80];
  6.         char temp[80];
  7.         int i,j;
  8.         printf("Please input 6 strings:\n");
  9.         for (i=0;i<6;i++)
  10.         {
  11.                 gets(str[i]);
  12.         }
  13.         for (i=0;i<6;i++)
  14.         {
  15.                 for (j=i+1;j<6;j++)
  16.                 {
  17.                         if (strlen(str[i])>=strlen(str[j]))
  18.                         {
  19.                                 strcpy(temp,str[i]);
  20.                                 strcpy(str[i],str[j]);
  21.                                 strcpy(str[j],temp);
  22.                         }
  23.                 }
  24.         }
  25.         printf("The strings:\n");
  26.         for (i=0;i<6;i++)
  27.         {
  28.                 puts(str[i]);
  29.         }
  30.         return 0;
  31. }
复制代码
已解决,贴代码

作者: 从今以后    时间: 2014-12-29 12:17
从今以后 发表于 2014-12-29 12:03
想复杂了,这道题用strcmp函数比较字符串就好了。

这样可以吗
  1. int myStrcmp(char *s1, char *s2) {
  2.    
  3.     int result = (int)(strlen(s1) - strlen(s2));
  4.    
  5.     if (!result)
  6.         result = strcmp(s1, s2);
  7.    
  8.     return result;
  9. }
复制代码

作者: chasedream    时间: 2014-12-29 12:21
从今以后 发表于 2014-12-29 12:17
这样可以吗

你这是用的指针操作啊。。
作者: chasedream    时间: 2014-12-29 12:23
邓明 发表于 2014-12-29 11:46
可以新建一个整数数组,存放字符串长度
复制一个数组然后排序,根据排序结果和原数组进行比较,再输出字符 ...

我之前就是这思路,但是没做通,你能把代码贴出来看看嘛
作者: 从今以后    时间: 2014-12-29 12:46
chasedream 发表于 2014-12-29 12:21
你这是用的指针操作啊。。

功能实现了就行呗 题目有要求吗{:3_60:}
作者: 邓明    时间: 2014-12-29 14:02
chasedream 发表于 2014-12-29 12:23
我之前就是这思路,但是没做通,你能把代码贴出来看看嘛

我这是最常规的思路,代码写起来会显得比较啰嗦
我看了一下三楼所提示用的strcmp函数,这个确实会比较简单一些
用字符串数组进行简单的冒泡法排序就行了
你可以再试一下
作者: 北漂的小马    时间: 2014-12-29 14:08
好高深  还没学到
作者: chasedream    时间: 2014-12-29 15:11
从今以后 发表于 2014-12-29 12:46
功能实现了就行呗 题目有要求吗

没有特殊要求,我这是看网上的他们的面试题,我拿来做做练练手




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