输入n个整数,输出其中最小的k个:
代码:
/*
* 输入n个整数,输出其中最小的k个。
* 输入说明:1、输入两个整数;2、输入一个整数数组
* 输出说明:输出一个整数数组
*/
#include
/*
* 功能:输入 n 个整数,输出其中最小的k个
*
* 输入参数:unsigned int uiInputNum 输入整数个数
* int * pInputArray 输入整数数组
* unsigned int uiK 需输出uiK个整数
* 输出参数:int * pOutputArray 指针指向的内存区域保证有效,最小的uiK个整数
*
*/
void GetMinK(unsigned int uiInputNum, int * pInputArray, unsigned int uiK, int * pOutputArray)
{
int temp = 0;
int i, j;
for( i=0; i < uiInputNum; i++)
{
for( j=i+1; j < uiInputNum; j++)
{
if ( *(pInputArray+i) > *(pInputArray+j) )
{
temp = *(pInputArray+j);
*(pInputArray+j) = *(pInputArray+i);
*(pInputArray+i) = temp;
}
}
}
for( i=0; i < uiK; i++ )
{
*(pOutputArray+i)=*(pInputArray+i);
}
}
int main(void)
{
unsigned int i, j, Num, k;
int ai[255], ao[255];
scanf("%d", &Num);
scanf("%d", &k);
for( i = 0; i < Num; i++)
{
scanf("%d",&ai[i] );
}
GetMinK( Num, ai, k, ao);
for ( j = 0; j < k; j++)
{
printf("%d ", ao[j]);
}
}