立即注册 登录
萝卜钛客 返回首页

jack的个人空间 https://robotaics.com/?39 [收藏] [复制] [RSS]

日志

c++20250715

|已有 23 次阅读|2025-7-15 17:22

1.求第k名成绩:
#include<iostream>
using namespace std;

int main() {
int n,k,c,c1;
cin>>n>>k;
struct student{
int stuno;
float score;
};
student stu[n];
for (int i = 0; i <n; i++) {
cin >> stu[i].stuno>>stu[i].score;
}
for (int i = 1; i < n; i++) {
for (int j = i; j > 0; j--) {
if (stu[j].score < stu[j - 1].score) {
c = stu[j - 1].score;
c1=stu[j - 1].stuno;
stu[j - 1].score = stu[j].score;
stu[j - 1].stuno = stu[j].stuno;
stu[j].score = c;
stu[j].stuno = c1;
}

}
}
cout<<stu[k-1].stuno<<" "<<stu[k-1].score;
return 0;
}
2.输出每一个数的升序排名:
#include<iostream>
using namespace std;

int main() {
int n,c;
cin>>n;
int ar[n];
for(int i=0;i<n;i++){
cin>>ar[i];
}
for(int i=0;i<n;i++){
c=0;
for(int j=0;j<n;j++){
if(ar[i]>ar[j]){
c++;
}
}
cout<<c+1<<" ";
}
}

另一种做法:学习sort函数
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int data;
int rank;
int index;
};
node a[10001];
int n,i;
bool compdata(node x,node y)
{
return x.data<y.data;
}
bool compindex(node x,node y)
{
return x.index<y.index;
}
int main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i].data;
a[i].index=i;
}
sort(a+1,a+1+n,compdata);
for(i=1;i<=n;i++){
a[i].rank=i;
}
sort(a+1,a+1+n,compindex);
for(i=1;i<=n;i++){
cout<<a[i].rank<<' ';
}
return 0;
}

全部作者的其他最新日志

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

返回顶部