在一个能存放10个整数的数组中,存放了9个已按从小到大的顺序排列的整数,现输入一个整数插入到该数组中,要求数组的各个元素仍然按从小到大的顺序排列程序怎么编
答案:3 悬赏:0 手机版
解决时间 2021-05-07 10:41
- 提问者网友:辞取
- 2021-05-06 21:23
在一个能存放10个整数的数组中,存放了9个已按从小到大的顺序排列的整数,现输入一个整数插入到该数组中,要求数组的各个元素仍然按从小到大的顺序排列程序怎么编
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-05-06 21:40
费了好大劲写的0 0
二分查找忘了- -
#include <stdio.h>
#define N 10
int main()
{
int a[ N ] = { 1,2,3,4,5,6,7,8,9 }, c;
int i, j, m;
scanf( "%d", &c );
i = 0; j = N-2;
do {
m = ( i + j ) / 2;
if ( a[ m ] >= c )
j = m-1;
else if ( a[ m ] < c )
i = m+1;
} while ( i <= j );
for ( j = N-1; j > i; --j )
a[ j ] = a[ j-1 ];
a[ j ] = c;
for ( i = 0; i < N; ++i )
printf( "%d ", a[ i ] );
}
二分查找忘了- -
#include <stdio.h>
#define N 10
int main()
{
int a[ N ] = { 1,2,3,4,5,6,7,8,9 }, c;
int i, j, m;
scanf( "%d", &c );
i = 0; j = N-2;
do {
m = ( i + j ) / 2;
if ( a[ m ] >= c )
j = m-1;
else if ( a[ m ] < c )
i = m+1;
} while ( i <= j );
for ( j = N-1; j > i; --j )
a[ j ] = a[ j-1 ];
a[ j ] = c;
for ( i = 0; i < N; ++i )
printf( "%d ", a[ i ] );
}
全部回答
- 1楼网友:像个废品
- 2021-05-06 22:09
#include <stdio.h>
void main()
{
int num[10] = {1,2,3,4,5,6,7,8,9};
int i, j, n;
scanf("%d", &n);
for(i = 8; i >= 0; i--)
{
if(n >= num[i]) { for(j = 9; j > i; j--) num[j] = num[j-1]; num[i+1] = n; break; }
if(i == 0) { for(j = 9; j > i; j--) num[j] = num[j-1]; num[i] = n; }
}
for(i = 0; i < 10; i++)
printf("%d ", num[i]);
}
- 2楼网友:鸽屿
- 2021-05-06 21:58
帮你写了个. 你参考下:
#include<stdio.h>
main() { int a[ 10 ] = { 1, 2, 3, 4, 6, 7, 8, 9, 10 }; //数组长度10,初始化9个元素. int m, i, j; scanf( "%d" ,&m ); for ( i = 0; a[ i ] <= m; ++i ) ; for( j = 10-1; j > i; --j ) { a[ j ] = a[ j-1 ]; } a[ j ] = m; for( i = 0; i < 10; ++i ) { printf( "%d ", a[ i ]); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯