文章
145
粉丝
217
获赞
21
访问
84.0k
数组进行从小到大排序,相同的数必相邻,数出第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;
}
登录后发布评论
暂无评论,来抢沙发