1028 人口普查 (20 分) 

解1: 

 

#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;

const char maxInBirth[11] = "2014/09/06";
const char minInBirth[11] = "1814/09/06";

int main(){
    int n,cnt=0;
    char name[6],birth[11];
    
    scanf("%d",&n);
    char maxName[6],minName[6];
    char maxBirth[11]="2014/09/06",minBirth[11]="1814/09/06";
    while(n--){
        scanf("%s %s",name,birth);
        if(strcmp(birth, maxInBirth)<=0 && strcmp(birth, minInBirth)>=0){
            cnt++;
            if(strcmp(maxBirth, birth)>0){
                strcpy(maxBirth, birth);
                strcpy(maxName, name);
            }
            
            if(strcmp(minBirth, birth)<0){
                strcpy(minBirth, birth);
                strcpy(minName, name);
            }
        }
    }
    printf("%d",cnt);
    if(cnt>0)
       printf(" %s %s",maxName,minName);
    return 0;
}

 解2:

#include <cstdio>
 #include <cstring>
 #include <iostream>
 #include <sstream>
 #include <cmath>
 #include <algorithm>
 #include <string>
 #include <stack>
 #include <queue>
 #include <vector>
 #include <map>
 using namespace std;
 
 struct data{
     char name[10];
     int year, month, day;
 }data, maxx, minn;
 
 int main()
 {
     int n;
     scanf("%d", &n);
     minn.year = 1814;
     minn.month = 9;
     minn.day = 6;
     maxx.year = 2014;
     maxx.month = 9;
     maxx.month = 6;
     int cnt = 0;
     for(int i = 0; i < n; i++)
     {
         scanf("%s %d/%d/%d", &data.name, &data.year, &data.month, &data.day);
         cnt++;
         if(data.year > 2014 || (data.year == 2014 && data.month > 9) || (data.year == 2014 && data.month == 9 && data.day > 6) || data.year < 1814 || (data.year == 1814 && data.month < 9) || (data.year == 1814 && data.month == 9 && data.day < 6))
         {
             cnt--;
             continue;
         }    
         if(data.year < maxx.year || (data.year == maxx.year && data.month < maxx.month) || (data.year == maxx.year && data.month == maxx.month && data.day < maxx.day))
         {
             maxx = data;
         }
         if(data.year > minn.year || (data.year == minn.year && data.month > minn.month) || (data.year == minn.year && data.month == minn.month && data.day > minn.day))
         {
             minn = data;
         }
     }
     printf("%d", cnt);
     if(cnt != 0)
         printf(" %s %s", maxx.name, minn.name);
     return 0;
 }

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐