文章

145

粉丝

217

获赞

21

访问

84.0k

头像
查找第K小数 题解:C
P1383 北京邮电大学
发布于2024年1月28日 22:15
阅读数 569

 数组进行从小到大排序,相同的数必相邻,数出第k个数即所求。

#include <stdio.h>
#define N 1000

void Sort(int a[],int n)
{
	int i,j,temp;
	for(i = 0; i < n-1; i++)
		for(j = 1; j < n-i; j++)
			if(a[j] < a[j-1])
			{
				temp = a[j-1];
				a[j-1] = a[j];
				a[j] = temp;
			}
}

int main()
{
	int i,j,n,a[N],k;
	while(scanf("%d",&n) != EOF)
	{
		for(i = 0; i < n; i++)
			scanf("%d",&a[i]);
		scanf("%d",&k);
		Sort(a,n);	//排序小到大
		j = 1;	//数组第一个为最小的数
		for(i = 1; i < n; i++)
		{
			if(a[i] == a[i-1]) continue;	//相同
			else j++;
			if(j == k) break;	//找到第k小的数a[i]
		}
		printf("%d\n",a[i]);
	}
	
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发