题解 | #输入n个整数,输出其中最小的k个# 冒泡&快速
输入n个整数,输出其中最小的k个
https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c
//太繁琐 #include <stdio.h> #include <string.h> int main() { int str[1001] = {0}; int n=0,k=0,i=0; scanf("%d %d", &n, &k); int t = n; while(n>0) { scanf("%d",&str[i++]); n--; } //int len = strlen(str); for(int j = 0; j<t; j++) { for(int m = j+1; m<t; m++) { if(str[j] > str[m]) { int temp; temp = str[j]; str[j] = str[m]; str[m] = temp; } } } for(int j = 0; j<k; j++) { printf("%d ", str[j]); } str[k] = '\0'; return 0; } //转别人qsort排序,代码量少点 #include <stdio.h> #include <string.h> #include <stdlib.h> int cmp(const void *a, const void *b) { if(*(int*)a > *(int*)b) return 1; else return -1; } int main() { int n=0,k=0,i=0; scanf("%d %d\n", &n, &k); int str[n]; for(int i = 0; i<n; i++) { scanf("%d", &str[i]); } qsort(str,n,sizeof(int),cmp); for(int i = 0; i<k; i++) { printf("%d ", str[i]); } return 0; }