题目描述
定义一个结构体,其中包含两个整形变量value、i。现要求将输入的结构体按照value升序排序,并且输出前k个的i值。
输入
第一行有两个整数n和k,n代表结构体的个数。
从第2–n+1行,每行有两个整数,分别为value和i。
(0<n<=100,0<k<=n)
输出
输出结构体按照value升序排序后的前k个 i 值。
(输出占一行,每两个数之间有一个空格,行结尾没有空格!)
样例输入
3 3
10 0
1 2
100 -1
样例输出
2 0 -1
参考代码
#include<stdio.h>
struct p
{
int value;
int i;
}
s[10];
int main()
{
int n,k,i,j;
scanf("%d%d",&n,&k);
for (i=0;i<n;i++)
scanf("%d%d",&s[i].value,&s[i].i);
for (i=0;i<n;i++)
for (j=0;j<n-1;j++)
{
if(s[j].value>s[j+1].value)
{
struct p x;
x=s[j];
s[j]=s[j+1];
s[j+1]=x;
}
}
for (i=0;i<k;i++)
{
printf("%d ",s[i].i);
}
return 0;
}
解析
暂无