概述
注释部分为傻乎乎比较法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//typedef struct people{
// char name[6];
// int year;
// int month;
// int day;
//}people;
//
//int judge(int year,int month,int day,int year2,int month2,int day2){
// if(year>year2)
// return 0;
// else if(year==year2&&month>month2)
// return 0;
// else if(year==year2&&month==month2&&day>day2)
// return 0;
// else if(year2-year>200)
// return -1;
// else if(year2-year==200&&month2>month)
// return -1;
// else if(year2-year==200&&month2==month&&day2>day)
// return -1;
// else
// return 1;
//
//}
//int main(){
// int n,count=0,min=-1,max=-1;
// scanf("%d",&n);
// people man[n];
// for(int i=0;i<n;i++){
// scanf("%s %d/%d/%d",man[i].name,&man[i].year,&man[i].month,&man[i].day);
// if(judge(man[i].year,man[i].month,man[i].day,2014,9,6)==1)
// {
// count++;
// if(min==-1)
// min=i;
// if(max==-1)
// max=i;
// if(judge(man[i].year,man[i].month,man[i].day,man[min].year,man[min].month,man[min].day)==0)
// min=i;
// if(judge(man[i].year,man[i].month,man[i].day,man[max].year,man[max].month,man[max].day)!=0)
// max=i;
// }
// }
// if(count==0){
// printf("0");
// return 0;
// }
// printf("%d %s %s",count,man[max].name,man[min].name);
//return 0;
//}
//其实可以直接对字符串进行比较
int main(){
int n,count=0;
scanf("%d",&n);
char name[6],birthday[11];
char yname[6]="",oname[6]="";
char ybirth[11]="1814/09/06",obirth[11]="2014/09/06";
for(int i=0;i<n;i++){
scanf("%s %s",name,birthday);
if(strcmp(birthday,"2014/09/06")<=0&&strcmp(birthday,"1814/09/06")>=0){ //满足年龄的要求
count++; //计数器加一
if(strcmp(birthday,ybirth)>0) //找到最年轻的
{
strcpy(ybirth,birthday);
strcpy(yname,name);
}
if(strcmp(birthday,obirth)<0) //找到最年长的
{
strcpy(obirth,birthday);
strcpy(oname,name);
}
}
}
printf("%d",count); //当count为0时只用打印0,后面不允许有多余空格,所以要分开打印
if(count>0)
printf(" %s %s",oname,yname);
return 0;
}
1.可以直接字符串比较
2.最后的输出要分开输出
最后
以上就是犹豫书本为你收集整理的1028 人口普查(用C语言精简的解决每日两题)的全部内容,希望文章能够帮你解决1028 人口普查(用C语言精简的解决每日两题)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复