在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)
90788004 68.4
程序代码 1(选择排序):
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
double a[105];
int num[105];
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++) // 循环输入每人的学号及成绩
{
cin>>num[i]>>a[i];
}
for(int i=1;i<n;i++) // 选择排序
{
for(int j=i+1;j<=n;j++)
{
if(a[i]<a[j])
{
swap(a[i],a[j]); // 交换成绩
swap(num[i],num[j]); // 同时还要交换学号
}
}
}
cout<<num[k]<<" "<<a[k]<<endl; // 输出第k名的学号和成绩
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
double a[105];
int num[105];
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++) // 循环输入每人的学号及成绩
{
cin>>num[i]>>a[i];
}
for(int i=n-1;i>=1;i--) // 冒泡排序
{
bool flag=true;
for(int j=1;j<=i;j++)
{
if(a[j]<a[j+1])
{
flag=false;
swap(a[j],a[j+1]); // 交换成绩
swap(num[j],num[j+1]); // 同时还要交换学号
}
}
if(flag) break; // 优化
}
cout<<num[k]<<" "<<a[k]<<endl; // 输出第k名的学号和成绩
return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
double a[105];
int num[105];
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++) // 循环输入每人的学号及成绩
{
cin>>num[i]>>a[i];
}
for(int i=2;i<=n;i++) // 插入排序
{
for(int j=i;j>1;j--)
{
if(a[j]>a[j-1])
{
swap(a[j],a[j-1]); // 交换成绩
swap(num[j],num[j-1]); // 同时还要交换学号
}
}
}
cout<<num[k]<<" "<<a[k]<<endl; // 输出第k名的学号和成绩
return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
struct student // 结构体
{
int num; // 学号
double score; // 成绩
}a[105];
bool cmp(student x,student y) // 比较函数
{
return x.score > y.score;
}
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++) // 读入每人的学号及成绩
{
cin>>a[i].num>>a[i].score;
}
sort(a+1,a+n+1,cmp); // 调用sort 排序函数
cout<<a[k].num<<" "<<a[k].score<<endl; // 输出第k名学号及成绩
return 0;
}
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n,k;
struct student // 结构体
{
int num; // 学号
double score; // 成绩
}a[105];
bool cmp(student x,student y) // 比较函数
{
return x.score > y.score;
}
void init() // 输入函数
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i].num>>a[i].score;
}
}
void CMP() // 排序函数
{
sort(a+1,a+n+1,cmp);
}
void print() // 输出函数
{
cout<<a[k].num<<" "<<a[k].score<<endl;
}
int main()
{
init(); // 调用输入函数
CMP(); // 调用排序函数
print(); //调用输出函数
return 0;
}
上一篇:没有了!
下一篇:C语言的读入与输出
五年级上册解方程练… | 255683 |
九连环图解解法 | 227181 |
wifi万能钥匙破解的… | 178017 |
纸飞机Skyking(空… | 171179 |
小学语文知识大全(… | 152201 |
各种鱼钩鱼线绑法与… | 117400 |
课题研究的方法有哪些 | 113517 |
人教版pep小学英语… | 104931 |
小学语文知识大全(… | 96954 |
人教版pep小学英语… | 96651 |
小学数学五年级上册… | 93667 |
人教版pep小学英语… | 82780 |
小学语文知识大全(… | 80563 |
笔记本电脑如何关闭… | 79938 |
小学生六一搞笑小品… | 78999 |
不打结的红领巾系法… | 78240 |