输入n行不同学生的name性别id和成绩,输出成绩最高的女生名字和id,成绩最低的男生名字和id求出二者的差
如果有性别缺少,输出Absent并在结果行输出NA
注意变量不要搞混,可以用结构体……不过似乎没有太大必要性
1 #include <cstdio> 2 #include <string.h> 3 int main(){ 4 int mgrade=1000000,fgrade=-1,grade,n; 5 char name[11],mname[11],fname[11],gender, 6 gen1='n',gen2='n',id[11],fid[11],mid[11]; 7 scanf("%d",&n); 8 while(n--){ 9 scanf("%s %c %s %d",&name,&gender,&id,&grade); 10 if(gender=='M'&&grade<mgrade){ 11 strcpy(mname,name); 12 gen1=gender; 13 strcpy(mid,id); 14 mgrade=grade; 15 } 16 if(gender=='F'&&grade>fgrade){ 17 strcpy(fname,name); 18 gen2=gender; 19 strcpy(fid,id); 20 fgrade=grade; 21 } 22 } 23 if(gen1=='n'&&gen2=='F'){ 24 printf("%s %s Absent NA",fname,fid); 25 } 26 else if(gen2=='n'&&gen1=='M'){ 27 printf("Absent %s %s NA",mname,mid); 28 } 29 else{ 30 printf("%s %s ", fname,fid); 31 printf("%s %s ", mname,mid); 32 printf("%d", fgrade-mgrade); 33 } 34 return 0; 35 }