要用结构体,而且是C语言, 输入n个英文单词, 对这些单词按长度从小到大排序后输出。 如果长度 相同,按照输入的顺序不变。

一定要用C语言和结构体,本题要求编写程序,
输入n个英文单词,
对这些单词按长度从小到大排序后输出。
如果长度
相同,按照输入的顺序不变。

在结构体定义一个int类型成员,保存字符串的长度,然后对该数据排序即可。

你可以参考如下链接:


如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮

#include <stdio.h>
typedef struct _words
{
      char word[100];
      int len;
}words;

int main()
{
      words w[10000],temp;
      int n,i,j;
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
            scanf("%s",&w[i].word);
            w[i].len = 0;
            for(j=0;w[i].word[j] != 0;j++)
                  w[i].len++;
      }
      for(i=0;i<n-1;i++)
          for(j=0;j<n-i-1;j++)
          {
                if(w[j].len > w[j+1])
                {
                      temp = w[j];
                      w[j] = w[j+1];
                      w[j+1] = temp;
                }
          }
      for(i=0;i<n;i++)
          printf("%s\n",w[i].word);
      return 0;
}