首页 > 编程语言 >PTA1004 成绩排名(C++)

PTA1004 成绩排名(C++)

时间:2023-04-25 20:34:32浏览次数:47  
标签:PTA1004 成绩排名 学号 int C++ 学生 grade 姓名 成绩

一、问题描述:

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:

每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
  ... ... ...
第 n+1 行:第 n 个学生的姓名 学号 成绩

  

其中姓名学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

输入样例:

3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95

输出样例:

Mike CS991301
Joe Math990112

二、设计思路:

  1. 设计学生结构体,内含姓名、学号、成绩;
  2. 输入正整数n,建立对象数组a[n];
  3. 讲个学生信息输入到数组中;
  4. 分别比较学生成绩,找到成绩最高和最低的学生,并输出学生信息。

三、代码实现:

 

#include <iostream>
#include <string>
using namespace std;
struct student{
    string name;
    string xuehao;
    int grade;
};
int main()
{
    int n;
    cin>>n;
    struct student a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i].name>>a[i].xuehao>>a[i].grade;
    }
    int maxx=0,minx=0;
    for(int i=1;i<n;i++)
    {
        if(a[i].grade>a[maxx].grade)
            maxx=i;
        if(a[i].grade<a[minx].grade)
            minx=i;
    }
    cout<<a[maxx].name<<" "<<a[maxx].xuehao<<endl;
    cout<<a[minx].name<<" "<<a[minx].xuehao<<endl;
    return 0;
}

 

标签:PTA1004,成绩排名,学号,int,C++,学生,grade,姓名,成绩
From: https://www.cnblogs.com/tljx-cen/p/17353740.html

相关文章

  • c++打卡第十五天
    一、问题描述 二、设计思路。①、我们在此使用结构体定义结构体数组,结构体数组中包括每个阶段的征税始末,以及相对应的税率。当我们将工资传入时,会出现相应阶段的部分,以及总共应需缴纳金额。②、我们设计计算函数,通过for循环进行计算各个阶段的计算,同时使用选择语句,判断工资是......
  • C++每日打卡
    计算年龄问题定义一个Birthday类,其成员变量有3个整形变量(出生的年月日):year,month,day;提供构造方法对这3个成员变量进行初始化;成员函数有getAge(),其功能是实现计算到2017年12月25日时该Birthday对象的年龄。 #include<iostream>usingnamespacestd;classBirthday{int......
  • C++基础3: 引用
    前言本篇首先回顾指针的概念,用C指针的缺陷引出C++中的引用,然后对引用进行说明比如,什么是引用?引用解决指针什么问题?引用的特性和使用等等1.指针什么是指针指针是内存单元的地址,口语中的指针实际上是指针变量,存储地址的变量#include<stdio.h>intmain(){ i......
  • C++中什么是多态,多态需要满足什么条件,怎么使用,它的实现原理是什么?
    概念:多态是指一个接口,根据传入的参数不同,呈现多种多态,多态分为静态多态和动态多态。静态多态:像函数重载和运算符重载属于静态多态,复用函数名。它的函数地址在编译阶段就已经确定了。动态多态:通过派生类和虚函数实现运行时多态(有子类继承,子类重写父类虚函数),它的函数......
  • C++深拷贝与浅拷贝
    浅拷贝的问题默认提供的拷贝构造就是浅拷贝,如果拷贝的对象中含有成员指针变量指向堆区中的内存空间,那么就会出现两个对象中的成员指针变量指向同一块堆区空间,当方法执行结束后,对象就会被释放,调用析构函数(析构函数中存在释放在堆区开辟的内存空间),就会存在一块内存空间被多次释放......
  • c++遍历搜索关键字
    #include<iostream>#include<windows.h>#include<string.h>#include<strsafe.h>#defineMAX_INPUT_LENGTH255usingnamespacestd;voidprintMemory(char*location,longsize){ printf("\n\n---------------------location......
  • 我总结的一些 C++ 高频面试题(收藏)
    extern“C”extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。被extern"C"修饰的变量和函数是按照C语言方式编译和连接的。extern“C”这个声明的真实目的:解决名字匹配问题,实现C++与C的混合......
  • c++11 std::forward使用场景以及作用
    不使用 std::forward时,下述代码G不管传入什么类型的参数,只会最终调用 voidF(int&a);usingnamespacestd; voidF(int&a){  cout<<"int&version"<<a<<endl;} voidF(int&&a){  //dosomething  cout<<"in......
  • C++语言亚马逊国际获取AMAZON商品详情 API接口
    跨境电子商务是一种全新的互联网电商模式,运用电子化方式促成线上跨境交易,利用跨境物流运送商品,有利于打破传统的贸易格局,成为新的经济增长点。对我国来说,跨境电商平台正用一种全新的力量改变我国产业链的结构,并有利于增加贸易机会,拓展我国外贸在国际市场的广度与深度,赢得广阔的海......
  • 名字修饰约定: extern "C"、extern "C++" 和__stdcall、__cdecl相关的约定、__imp_前
    关于extern_C通常,在C语言的头文件中经常可以看到类似下面这种形式的代码#ifdef__cplusplusextern"C"{#endif/****somedeclarationorso*****/#ifdef__cplusplus}#endif/*endof__cplusplus*/那么,这种写法什么用呢?实际上,这是为了让CPP能够与C......