p.s.个人收录用
题目描述
军方截获的信息由n(n<=30000)个数字组成,因为是敌国的高端秘密,所以一时不能破获。最原始的想法就是对这n个数进行小到大排序,每个数都对应一个序号,然后对第i个是什么数感兴趣,现在要求编程完成。
输入
第一行n,接着是n个截获的数字,接着一行是数字k,接着是k行要输出数的序号。
输出
k行序号对应的数字。
样例输入 Copy
5 121 1 126 123 7 3 2 4 3
样例输出 Copy
7 123 121
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//军事机密
void sort(int a[], int l)
{
for (int i = 1; i < l; i++)
{
int j;
for (j = i - 1; j >= 0; j--)
{
if (a[i] >= a[j])
break;
}
if (j != i - 1)
{
int t = a[i];
for (int k = i - 1; k > j; k--)
{
a[k + 1] = a[k];
}
a[j + 1] = t;
}
}
}
int main()
{
int n;
scanf("%d", &n);
int a[30000];
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(&a[0], n);
int k;
scanf("%d", &k);
int b;
for (int i = 0; i < k; i++)
{
scanf("%d", &b);
printf("%d\n", a[b-1]);
}
}