描述:在有180人的大班级中,存在两个人生日相同的概率非常大,现在给出每个学生的名字,出生月日。试找出所有生日相同的学生。
输入:第一行为整数呢,表示有n个学生,此后每行包含一个字符串和两个整数,分别表示学生的名字和出生年月,中间有空格
输出:对所有的输出按照日期从前到后,对生日相同的名字,按名字从短到长输出,长度相同的按字典顺序输出,没有生日相同的学生,输出“None”
样例:
6
Avril 3 2
Candy 4 5
Tim 3 2
Sufia 4 5
Langrange 4 5
Bill 3 2
输出
3 2 Tim Bill Avril
4 5 Candy Sufia Lagrange
生日相同:在有180人的大班级中
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-深度学习进阶 2022-03-05 10:37关注
#include<stdio.h> #include<string.h> struct stuent{ char name[100]; int birth[2]; }stu[200]; struct stuent tmp; int main(){ int i,j,k; int n; int flag=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s",stu[i].name); scanf("%d%d",&stu[i].birth[0],&stu[i].birth[1]); } for(i=0;i<n;i++){ for(j=n-1;j>i;j--){ if(strlen(stu[j].name)<strlen(stu[j-1].name)){ tmp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=tmp; } else if(strlen(stu[j].name)==strlen(stu[j-1].name)&&strcmp(stu[j].name,stu[j-1].name)<0){ tmp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=tmp; } } } for(i=0;i<n;i++){ for(j=n-1;j>i;j--){ if(stu[j].birth[0]<stu[j-1].birth[0]){ tmp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=tmp; } else if(stu[j].birth[0]==stu[j-1].birth[0]&&stu[j].birth[1]<stu[j-1].birth[1]){ tmp=stu[j]; stu[j]=stu[j-1]; stu[j-1]=tmp; } } } for(i=0;i<n;i=j){ for(j=i+1;j<n;j++){ if(stu[i].birth[0]==stu[j].birth[0]&&stu[i].birth[1]==stu[j].birth[1]) ; else break; } if((j-i)>1){flag=1; printf("%d %d ",stu[i].birth[0],stu[i].birth[1]); for(k=i;k<j;k++) printf("%s ",stu[k].name); printf("\n"); } } if(!flag) printf("None"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测