PTA A1036 Boys vs Girls

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}

猜你喜欢

转载自blog.csdn.net/fuckingone/article/details/82793374