#include
#include
#define BirthLen 11
#define NameLen 6
char MAX[BirthLen] = "2014/09/06";
char MIN[BirthLen] = "1814/09/06";
int main(){
int n;
scanf("%d", &n);
int count = 0;
char old[BirthLen], young[BirthLen];
char oldName[NameLen], youngName[NameLen];
strcpy(old, MAX);
strcpy(young, MIN);
for(int i=0; i=0 && strcmp(birth, MAX)<=0){
count++;
if(strcmp(birth, old)<0){
strcpy(old, birth);
strcpy(oldName, name);
}
if(strcmp(birth, young)>0){
strcpy(young, birth);
strcpy(youngName, name);
}
}
}
if(count>0){
printf("%d %s %s\n", count, oldName, youngName);
}
else{
printf("%d\n", count);
}
return 0;
}
坑点:有一个case是合法人数为0,此时无法输出最年长和最年轻的人,因此要先判断count>0
学到的语法:
1、对字符数组char a[]练习strcpy, strcmp等用法,头文件是
strcpy(old, birth); 将birth字符数组复制给old字符数组
strcmp(birth, MIN):比较birth是否大于MIN,若是返回正数,否返回负数,二者相等返回0。
2、练习宏定义用法#define
3、c语言中字符串用的是char[]字符数组的形式。