版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuckingone/article/details/82793374
题目看懂了(*^▽^*)
#include<cstdio>
using namespace std;
struct student{
char name[11];
char sex[2];
char id[11];
int grade;
}girl,boy,temp;
int main(){
girl.grade=0;
boy.grade=100;
int boy_flag=0;
int girl_flag=0;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s %s %s %d",temp.name,temp.sex,temp.id,&temp.grade);
if(temp.sex=='M'){
boy_flag=1;
if(temp.grade<boy.grade)boy=temp;
}
if(temp.sex=='F'){
girl_flag=1;
if(temp.grade>girl.grade)girl=temp;
}
}
if(girl_flag&&boy_flag){
printf("%s %s\n",girl.name,girl.id);
printf("%s %s\n",boy.name,boy.id);
printf("%d",girl.grade-boy.grade);
}
if(girl_flag==0){
printf("Absent");
printf("%s %s\n",boy.name,boy.id);
printf("NA");
}
if(boy_flag==0){
printf("%s %s\n",girl.name,girl.id);
printf("Absent");
printf("NA");
}
return 0;
}
注意:
1.性别是一个字符,可以直接存成char型,比较。
2.男生分数最低初始化为-1,女生分数最高初始为101,直接判断是否是-1和101即可。
#include<cstdio>
using namespace std;
struct student{
char name[11];
char id[11];
int grade;
}girl,boy,temp;
int main(){
girl.grade=-1;
boy.grade=101;
char gender;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s %c %s %d",temp.name,&gender,temp.id,&temp.grade);
if(gender=='M'&&temp.grade<boy.grade){
boy=temp;
}
else if(gender=='F'&&temp.grade>girl.grade){
girl=temp;
}
}
if(girl.grade==-1)printf("Absent\n");
else printf("%s %s\n",girl.name,girl.id);
if(boy.grade==101)printf("Absent\n");
else printf("%s %s\n",boy.name,boy.id);
if(girl.grade==-1||boy.grade==101)printf("NA\n");
else printf("%d\n",girl.grade-boy.grade);
return 0;
}