仇晓 发表于 2020-12-15 13:28:53

作业求助 批量数组

老师要统计班里每个人的生日,并按照出生日期从早到晚排序。
输入格式:第一行一个整数 n(1≤n≤100),班级班级的人数。接下来 n 行,每行包含一个字符串 s 和三个整数 y,m,d,表示姓名为 s 的同学出生日期是 y 年 m 月 d 日。保证所有日期合法,姓名由小写字母构成,不超过 20 个字符。
输出格式:输出 n 行,每行一个字符串表示姓名。如果有两个同学出生日期相同,输入靠后的同学先输出。

仇晓 发表于 2020-12-15 14:09:17

求求各位大佬理我一下{:10_266:}

wp231957 发表于 2020-12-15 14:22:16

c语言玩这东西,比较麻烦

仇晓 发表于 2020-12-15 14:29:14

#include <stdio.h>
int main()
{
    int N, m, i, j;
    scanf("%d", &N);
    struct stu
    {
      char name;
      int year;
      int month;
      int day;
    } stu, t;

    for (m = 0; m < N; m++)
    {
      scanf("%s", stu.name);
      scanf("%d %d %d", &stu.year, &stu.month, &stu.day);
    }
    for (i = 0; i < N; i++)
    {
      for (j = i + 1; j < N; j++)
      {
      }
      for (int i = 0; i < N; i++)
      {
            for (int j = i + 1; j < N; j++)
            {
                if (stu.year > stu.year)
                {
                  t = stu;
                  stu = stu;
                  stu = t;
                }
                else if (stu.year == stu.year)
                {
                  if (stu.month > stu.month)
                  {
                        t = stu;
                        stu = stu;
                        stu = t;
                  }
                  else if (stu.month == stu.month)
                  {
                        if (stu.day >= stu.day)
                        {
                            t = stu;
                            stu = stu;
                            stu = t;
                        }
                  }
                }
            }
      }
      for (m = 0; m < N; m++)
            printf("%s\n", stu.name);
      return 0;
    }
}

仇晓 发表于 2020-12-15 14:29:48

好我自问自答!

bonst 发表于 2020-12-15 17:58:01

你可以的,把问题解决了
页: [1]
查看完整版本: 作业求助 批量数组