麻烦大家看一下,为什么提交这个c语言题目总是遇见Runtime error
题目描述:查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。
输入:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出:
输出第k小的整数。
样例输入:
6
2 1 3 5 2 2
3
样例输出:
3
#include<stdio.h>
int main(){
int n=0,k=0,i=0,j=0,temp=0;;
int a[1000];
int b[1000];
while(scanf("%d",&n)!=EOF){
while(n<1||n>1000){
scanf("%d",&n);
}
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&k);
while(k<1||k>1000){
scanf("%d",&k);
}
for(i=0;i<n-1;i++){//冒泡排序,从小到大
for(j=n-1;j>0;j--){
if(a[j-1]>a[j]){
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
j=0;
for(i=0;i<n-1;i++){//将不重复的数组元素存到另一个数组
if(a[i]!=a[i+1]){
b[j]=a[i];
j++;
}
}
b[j]=a[n-1];
printf("%d",b[k-1]);
}
return 0;
}