首先第一想到的是排序,想着刚好练练各种排序,然后看到每个数只计算一次,还全是正整数,于是直接读的时候记录读到啥数字,专门拿一个数组(代码中的b)记录,最后要第k个,直接数就可以,不成立的情况中间筛选了。
#include<stdio.h>
int main(){
int num,k,a[10001]={0},b[10001]={0},tmp,count=0;
scanf("%d %d",&num,&k);
for(int i=1;i<=num;i++)
{
scanf("%d",a+i);
tmp=a[i];
if(!b[tmp]) count++;
b[tmp]=1;
}
if(count<k) {printf("NO RESULT");return 0;}
count=0;
for(int i=1;i<=10001;i++)
{
if(b[i])
if(count==k-1)
{printf("%d",i);return 0;}
else
count++;
}
}
后续考虑有不全是正数的情况,以及把排序练习好。
标签:10001,记录,int,整数,P1138,num,排序 From: https://blog.csdn.net/ykg_kdr/article/details/136692096