1028. 人口普查(20)

小咪咪 2022-05-26 05:56 367阅读 0赞

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。

输入格式:

输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

输出格式:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

输入样例:

  1. 5
  2. John 2001/05/12
  3. Tom 1814/09/06
  4. Ann 2121/01/30
  5. James 1814/09/05
  6. Steve 1967/11/20

输出样例:

  1. 3 Tom John

代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. int i,j,n,m,k,t,num=0;
  6. char name[10],maxname[10],minname[10],maxanswer[10]="18140905",minanswer[10]="20140907";
  7. scanf("%d",&n);
  8. for(i=0;i<n;i++)
  9. {
  10. char str[10]="",str1[10];
  11. scanf("%s %d/%d/%d",name,&m,&k,&t);
  12. sprintf(str1,"%04d",m);
  13. strcat(str,str1);
  14. sprintf(str1,"%02d",k);
  15. strcat(str,str1);
  16. sprintf(str1,"%02d",t);
  17. strcat(str,str1);
  18. //printf("%s\n",str);
  19. if(strcmp(str,"18140906")>=0&&strcmp(str,"20140906")<=0)
  20. {
  21. if(strcmp(str,maxanswer)>0)
  22. {
  23. strcpy(maxanswer,str);
  24. strcpy(minname,name);
  25. }
  26. if(strcmp(str,minanswer)<0)
  27. {
  28. strcpy(minanswer,str);
  29. strcpy(maxname,name);
  30. }
  31. num++;
  32. }
  33. }
  34. if(num!=0)
  35. printf("%d %s %s",num,maxname,minname);
  36. else
  37. printf("0");
  38. return 0;
  39. }

发表评论

表情:
评论列表 (有 0 条评论,367人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1028 人口普查(JAVA)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁

    相关 1028. 人口普查(20)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老

    相关 1028 人口普查

    题目描述   某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。   这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知

    相关 PAT-B 1028. 人口普查(20)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的

    相关 PAT-1028 人口普查 (20 分)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200