c语言:一个大小是10的数组,已经存放有9个数字,且按从小到大排列.现插入一个数,用函数写

一个大小是10的数组,已经存放有9个数字,且按从小到大排列。现插入一个数,要求从小到大的顺序保持不变,用函数实现

第1个回答  2016-05-14
void insertSortedArray( int arr[], int insertNum )
{
int i = 0;
int midArr[10] = {0};

memcpy( midArr, arr, sizeof(midArr) );

for ( ; i < 10; i ++ )
{
if ( insertNum < arr[i] )
{
arr[i] = insertNum;
i ++;

break;
}
}

for ( ; i < 10; i ++ )
{
arr[i] = midArr[i-1];
}
}追问

大神,能不能写的完整一点啊

追答

#include
#include

void insertSortedArray( int arr[], int insertNum )
{
int i = 0;
int midArr[10] = {0};

memcpy( midArr, arr, sizeof(midArr) );

for ( ; i < 10; i ++ )
{
if ( insertNum < arr[i] )
{
arr[i] = insertNum;
i ++;

break;
}
}

//如果所有数字都比插入的数字小
if ( i == 10 )
{
arr[9] = insertNum;
return;
}

for ( ; i < 10; i ++ )
{
arr[i] = midArr[i-1];
}
}

int main(int argc, _TCHAR* argv[])
{
int i = 0;
int arr[10] = { 1,2,3,4,5,6,7,8,22 };

insertSortedArray( arr, 5 );

for ( ; i < 10; i ++ )
{
printf( "%d ", arr[i] );
}

printf( "\n" );

system( "pause" );

return 0;
}

追问

不对啊

追答

将_TCHAR* 改成 char*