1036 Boys vs Girls (25)

本文展示了一个使用C++编写的程序示例,该程序通过输入学生的成绩信息,并按成绩对学生进行排序,最后输出最高分女生和最低分男生的信息及成绩差距。涉及到的知识点包括结构体定义、向量容器的应用、条件与循环语句、输入输出流操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个题太简单

 

#include<iostream>
#include<string>
#include<string.h>
#include<vector>
#include<algorithm>
using namespace std;

class CA
{
public:
 void run();
private:
 int n;
 struct stu
 {
  string name;
  char gender;
  string id;
  int grade;
  bool operator < (const stu& a) const
  {
   return grade>a.grade;
  }
 };
 vector<stu> male;
 vector<stu> female;
};

void CA::run()
{
 cin>>n;
 int i;
 for(i=0;i<n;i++)
 {
  stu st;
  cin>>st.name>>st.gender>>st.id>>st.grade;
  if(st.gender=='M')
   male.push_back(st);
  if(st.gender=='F')
   female.push_back(st);
 }
 sort(male.begin(),male.end());
 sort(female.begin(),female.end());
 int flag=-1;
 if(female.size()>=1)
  printf("%s %s\n",female.begin()->name.c_str(),female.begin()->id.c_str());
 else
 {
  flag=1;
  printf("Absent\n");
 }
 if(male.size()>=1)
 {
  printf("%s %s\n",(male.end()-1)->name.c_str(),(male.end()-1)->id.c_str());
 }
 else
 {
  flag=1;
  printf("Absent\n");
 }
 if(flag==1)
 {
  cout<<"NA"<<endl;
 }
 else
 {
  double dif=female.begin()->grade-(male.end()-1)->grade;
  printf("%.0f",dif);
 }

}

int main()
{
 CA *a=new CA;
 a->run();
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值