一开始没看懂题目,被恶心到了。。。

1
2

主要是排序。

代码如下:

#include <stdio.h>
#include <string.h>
typedef struct Man
{
  char ID[20];
  char  num[1005];
}man;
int main()
{
  man t[1000];
  man temp;
  int n;
  scanf("%d", &n);
  int i = 0;
  while (n--)
  {
    scanf("%s %s", t[i].ID, t[i].num);
    i++;
  }
  for (int j = 0; j < i; j++)
  {
    for (int k = j + 1; k < i; k++)
    {
      if (strlen(t[j].num) < strlen(t[k].num))    //长度不同直接换
      {
        temp = t[j];
        t[j] = t[k];
        t[k] = temp;
      }
      else if ((strlen(t[j].num) == strlen(t[k].num)) && (strcmp(t[j].num, t[k].num) < 0))   //长度相同strcmp比
      {
        temp = t[j];
        t[j] = t[k];
        t[k] = temp;
      }
      else if ((strlen(t[j].num) == strlen(t[k].num)) && (strcmp(t[j].num, t[k].num) == 0))    //长度相同 发帖数相同
      {
        if (strcmp(t[j].ID, t[k].ID) > 0)       //比名字
        {
          temp = t[j];
          t[j] = t[k];
          t[k] = temp;
        }
      }
    }
  }
  for (int j = 0; j < i; j++)   //输出
  {
    printf("%s\n", t[j].ID);
  }
  return 0;
}
最后修改:2019 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏