问题2:一个有序数组,输入任意一个整数,将它插入到有序数组中,保持数组仍然有序。
分析:
13,20,32,36,45,57,68,79,89,92,
x: 35
方法:
(1)找到插入位置(从前往后遍历整个数组,找到第一个比x大的数的位置)
(2)空出插入位置(从最后一个数据..插入位置数据,依次后移一个位置)
(3)把x插入到指定位置
#include <stdio.h>
int main()
{
int a[11]={13,20,32,36,45,57,68,79,89,92};
int i,x,j;
scanf("%d",&x);
//找位置
for(i=0;i<10;i++)
if (a[i]>x) break;
j=i; //j存储位置
//空出位置
for(i=9;i>=j;i--)
a[i+1]=a[i];
//插入数据
a[j]=x;
//输出数组内容
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("\n");
return 0;}
上一页
[1]
[2]
[3]
[4]
[5]
下一页