已知:
给定两个向量(vector),一个向量里存放多个准考证号(八位准考证号),另一个向量存放对应准考证号学生的成绩
函数要求:
按照成绩把第二个向量中的成绩从大到小排列,然后第一个向量中的准考证号位置同样变化
这个函数的作用就是把向量进行排列,没什么返回值。
如果向量不会的话,数组方法也可以。
谢谢大家
已知:
给定两个向量(vector),一个向量里存放多个准考证号(八位准考证号),另一个向量存放对应准考证号学生的成绩
函数要求:
按照成绩把第二个向量中的成绩从大到小排列,然后第一个向量中的准考证号位置同样变化
这个函数的作用就是把向量进行排列,没什么返回值。
如果向量不会的话,数组方法也可以。
谢谢大家
按题主题目写的:
#include <iostream>
using namespace std;
struct Student
{
string number; //考生号
double score; //成绩
};
void sort(struct Student* p,int n) //排序函数
{
for(int j=0;j<n-1;j++)
{
for(int i=0;i<n-1;i++)
{
if(p[i].score<p[i+1].score) //冒泡排序
{
struct Student temp=p[i];
p[i]=p[i+1];
p[i+1]=temp;
}
}
}
}
int main()
{
int n=0;
cout<<"输入人数:"<<endl;
cin>>n; //输入考生人数n
struct Student* p=new struct Student[n];
for(int i=0;i<n;i++)
{
cin>>p[i].number>>p[i].score; //输入n个考生的考生号和成绩
}
sort(p,n);
cout<<"排序后:"<<endl;
for(int i=0;i<n;i++)
{
cout<<p[i].number<<" "<<p[i].score<<endl;
}
return 0;
}
有帮助望采纳,谢谢!