什么是新闻源网站,国外网站后台模板,wordpress 网页编辑,临沂天元建设集团现在输入一批学生#xff08;人数大于0且不超过100#xff09;的名次和他们的姓名。要求按名次输出每个人的排名。
输入格式#xff1a;每行为一个学生的信息#xff0c;共两项#xff0c;第一项为排名#xff08;为正整数#xff0c;且任意两名学生的排名均不同#…现在输入一批学生人数大于0且不超过100的名次和他们的姓名。要求按名次输出每个人的排名。
输入格式每行为一个学生的信息共两项第一项为排名为正整数且任意两名学生的排名均不同第二项为学生姓名。当输入1时表示输入结束。
输出格式按名次输出学生姓名每行一个。
函数接口定义 main函数的一部分。 裁判测试程序样例 #include iostream #include string using namespace std; class Student{ int rank; string name; public: int getRank(){return rank; } Student(string name, int rank):name(name), rank(rank){ } ~Student(){ coutnameendl;} }; int main(){ int rank, count0; const int SIZE100; Student *pS[SIZE]; string name; cinrank; while(countSIZE rank0){ cinname; pS[count] new Student(name, rank); cinrank; }
/* 请在这里填写答案 */ return 0; } 输入样例 1 Jack 5 Peter 2 Alice 6 Kate 52 Mike -1 输出样例 Jack Alice Peter Kate Mike 思路
原题中无法获取私有的name而是在析构函数中有输出name所以调用析构函数进行输出name
for (int i 0; i count - 1; i){for (int j 0; j count - i - 1; j){if (pS[j]-getRank() pS[j 1]-getRank()) //成员访问运算符通过指针访问对象的成员{ Student* temp pS[j]; //创建一个指向 Student 对象的指针 temppS[j] pS[j 1];pS[j 1] temp;} // 指针数组交换两个学生指针的位置}}for (int i 0; i count; i) {delete pS[i];} // 释放动态分配的学生对象内存触发析构函数输出学生姓名