描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例

输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。

错误代码:
#include <stdio.h>
//思路:和明明的随机数那道题一样,就是先创建一个长度为10000的一维数组,默认所有值为0,输入的数据范围代表着循环的次数,输入的整数存放于数组下标中,
int main() {
int arr[10000]={0};
int i,n,num,a,b;
scanf("%d%d",&n,&num);//输入第一行的两个数,分别是n和num
for(i=0;i<n;i++)//输入长度为n的一维数组
{
scanf("%d",&a);
arr[a]=1;//标记下标
}
for(i=0,b=0;(i<10000)&&(b<num);i++)//输出长度为num的一个递增序列
{
if(arr[i]==1)
{
printf("%d ",i);
b++;
}
}
return 0;
}
通过自测后,我兴奋地想:

博客介绍了如何处理输入n个整数,找出其中最小的k个并按升序输出的问题。文章指出,在遇到相同输入时,原始代码会出现输出重复的情况,需要修正代码以满足要求。经过改进,代码成功通过所有测试用例。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



