zoukankan      html  css  js  c++  java
  • NOI3.1 6377:生日相同 2.0

    描述

    在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。

    输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔 输出 每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出”None” 样例输入
    6
    Avril 3 2
    Candy 4 5
    Tim 3 2
    Sufia 4 5
    Lagrange 4 5
    Bill 3 2
    样例输出
    3 2 Tim Bill Avril
    4 5 Candy Sufia Lagrange

    开始觉得这题只需要结构体排序,但要写两个结构体,有点烧脑,但这并不重要


    这题主要实现介绍如何结构体套结构体,方法如下:


    struct ill{
    		char name[21];
    };
    struct node{
    	int num;
    	ill ren[185];//用于访问“ill”结构体
    }day[16][35];

    不要笑结构体的名字…………


    千万不要这样写:

    struct node{

    int num;

    struct ill{

    char name[20];

    }ren[180];

    };


    不然在写排序函数时会报错


    题目很简单,只是想介绍结构体的特性…………


    AC代码如下:

    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    struct ill{
    		char name[21];
    };
    struct node{
    	int num;
    	ill ren[185];
    }day[16][35];
    bool fuu(ill x,ill y)
    {
    	if(strlen(x.name)<strlen(y.name))
    		return 1;
    	if(strlen(x.name)==strlen(y.name)&&strcmp(x.name,y.name)<0)
    		return 1;
    	return 0;
    }
    int main()
    {
    	int n,m,d,i,j,k;
    	bool p=0;
    	char a[21];
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%s%d%d",a,&m,&d);
    		strcpy(day[m][d].ren[day[m][d].num].name,a);
    		day[m][d].num++;
    	}
    	for(i=1;i<=12;i++)
    		for(j=1;j<=31;j++)
    			if(day[i][j].num)
    				sort(day[i][j].ren,day[i][j].ren+day[i][j].num,fuu);
    	for(i=1;i<=12;i++)
    		for(j=1;j<=31;j++)
    			if(day[i][j].num>1)
    			{
    				p=1;
    				printf("%d %d",i,j);
    				for(k=0;k<day[i][j].num;k++)
    					printf(" %s",day[i][j].ren[k].name);
    				printf("
    ");
    			}
    	if(!p)
    		printf("None");
    }

  • 相关阅读:
    CCNA 第二章 以太网回顾
    CCNA 第一章 网络互联
    solidworks中 toolbox调用出现未配置的解决方法
    linux之df命令
    linux之du命令
    linux之pid文件
    linux之mysql启动问题
    linux之使用cron,logrotate管理日志文件
    wordpress(一)wordpress环境的搭建
    phpwind8.7升级9.0.1过程(四)20130207升级到20141228
  • 原文地址:https://www.cnblogs.com/Darknesses/p/12002576.html
Copyright © 2011-2022 走看看