#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, a;
cin >> n >> a; // 输入整数 n 和 a
int arr[n]; // 创建大小为 n 的整型数组 arr
double btt[n]; // 创建大小为 n 的双精度浮点型数组 btt
for (int i = 0; i < n; i++)
{
cin >> arr[i] >> btt[i]; // 依次读取元素到数组 arr 和 btt
}
// 使用冒泡排序按照 btt 数组的值进行降序排序,并同时调整 arr 数组顺序
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (btt[j] < btt[j + 1]) // 如果当前元素的 btt 值比后面一个元素的 btt 值小,则交换位置
{
swap(btt[j], btt[j + 1]);
swap(arr[j], arr[j + 1]);
}
}
}
printf("%d %g", arr[a - 1], btt[a - 1]); // 输出排在第 a 位的 arr 和对应的 btt 值
}
返回代码逻辑:
- 首先,从标准输入中读取两个整数 n 和 a。
- 创建一个大小为 n 的整型数组 arr 和一个大小为 n 的双精度浮点型数组 btt。
- 使用 for 循环,从标准输入中依次读取 n 对元素,并将第一个整数存入数组 arr 的对应位置,将第二个双精度浮点数存入数组 btt 的对应位置。
- 使用冒泡排序算法对数组 btt 进行降序排序,并同时调整数组 arr 的顺序,使得二者保持一一对应的关系。
- 使用 printf 函数,输出排在第 a 位的 arr 数组元素和对应的 btt 数组元素。
- 程序结束。