m0_63640235 2022-06-29 17:06 采纳率: 85%
浏览 78
已结题

程序设计部分 结构体求解

编程要求
在一个100人的班级中,有同学生日相同的几率非常大。现在给出每个学生的学号生日,请你找出所有生日相同的学生。
右侧编辑器中有一个函数Count,请在此函数中读取数据统计结果。
输入数据由学员处理,每组数据有多行,第一行是一个整数n(0<=n<50),接下来有n条学生的信息。
每一条学生的信息都按照此格式给出:<学号> <生日月份> <生日日期>,其中学号是5位的字符串。
要求只输出生日相同的学生的学号,输出要求如下,具体效果参考测试说明或查看测试集:
对每组生日相同的学生,输出一行。
其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学号,数字、学号之间都用一个空格分隔,简单起见,最后一个学号后面也有一个空格。
对所有的输出,要求按日期从前到后的顺序输出。
对生日相同的学号,按输入的顺序输出。
具体见测试说明。
测试说明
平台会对你编写的代码进行测试:
预期输入:
5
00001 1 10
00002 2 24
00003 1 10
00004 12 21
00005 12 21
预期输出:
1 10 00001 00003
12 21 00004 00005
这个真的没有头绪,希望能看看大家的思路

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-06-29 17:14
    关注
    #include <stdio.h>
    typedef struct _stuinfo
    {
        char id[6];
        int year;
        int month;
    }stuinfo;
    
    typedef struct _birs
    {
        int nums;
        int year;
        int month;
        char ids[50][6];
    }birs;
    
    int main ()
    {
        stuinfo stu[50];
        int n,i,j,k=0;
        birs bir[50]={0};
        scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%s%d%d",stu[i].id,&stu[i].year,&stu[i].month);
        for(i=0;i<n;i++)
        {
            for(j=0;j<k;j++)
            {
                if(bir[j].year == stu[i].year && bir[j].month == stu[i].month)
                    break;
            }
            if(j==k)
            {
                bir[k].month = stu[i].month;
                bir[k].year = stu[i].year;
                strcpy(bir[k].ids[0],stu[i].id);
                bir[k].nums = 1;
                k++;
            }
            else
            {
                strcpy(bir[j].ids[bir[j].nums],stu[i].id);
                bir[j].nums++;
            }
        }
        for(i=0;i<k;i++)
        {
            if(bir[i].nums > 1)
            {
                printf("%d %d ",bir[i].year,bir[i].month);
                for(j=0;j<bir[i].nums;j++)
                    printf("%s ",bir[i].ids[j]);
                printf("\n");
            }
        }
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 创建了问题 6月29日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等