做这道题要借助冒泡排序,将这n个数放在一个定义的数组中,对其进行排序就可以输出前k个较小的数。由于一个数组的大小已经提前定义好了,就还需定义一个int型变量m,将n赋值给m,当m大于0时,用m自减1就可以得到这n个数。源程序如下:
#include <stdio.h>
int main()
{
int n;
int k;
printf ("Please input the values of n and k:\n");
scanf ("%d %d",&n,&k);
int a[10];
int i = 0;
int m = n;
while (m > 0)
{
printf ("Input an int:\n");
scanf ("%d",&a[i]);
m--;
i++;
}
int j;
int temp;
for (i = 0; i < n-1; i++)
{
for (j = 0; j < n-i-1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 0; i < k; i++)
{
printf ("%d ",a[i]);
}
printf ("\n");
return 0;
}