文章

18

粉丝

0

获赞

3

访问

11.1k

头像
查找第K小数 题解:自用笔记
P1383 北京邮电大学
发布于2024年3月17日 13:59
阅读数 638

在数据录入时进行处理:重复的数据不存储

#include<stdio.h>
#include<stdlib.h>
void select_sort(int* arr, int len) {
	int min,temp;
	for (int i = 0; i < len - 1; i++) {
		min = i;
		for (int j = i + 1; j < len; j++){
			if (arr[min] > arr[j])
				min = j;
		}
		temp = arr[min];
		arr[min] = arr[i];
		arr[i] = temp;
	}
}

int main() {
	int n, k,x,index,len = 0;//n、k、x为输入,index为重复标记,len为真实数组长度
	scanf("%d", &n);
	
	int* arr = (int*)malloc(sizeof(int) * n);
	while (n > 0) {//输入n个数据
		index = 1;
		scanf("%d", &x);
//处理重复数据
		for (int i = 0; i < len; i++) {
			if (x == arr[i]) {
				index = 0;
				break;
			}
		}
		if (index) //存储数据,记录长度
			arr[len++] = x;
		--n;
	}
	select_sort(arr, len);
	scanf("%d", &k);
	printf("%d", arr[k - 1]);

}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发