43.数组插入数

/*
m[10]={ 3 , 9 , 15 ,54 , 95 , 110 , 0 , 0 , 0 , 0 };
m[0] k k+1 h m[9]
*/
#include "stdio.h"
void main()
{
int m[10]={3,9,15,54,95,110,0,0,0,0};
int n;//用于存放插入数
int i;//循环变量,用于记住数组的编号范围
int h=6;//记住没有数值的第1个元素的编号
int k;//记住插入要插入到的位置编号

printf("数组插入数之前如下: ");
for(i=0;i<=h-1;i++)
{
printf("%4d",m[i]);
}
printf(" ");

do{
printf("请输入插入数:");
scanf("%d",&n);

//找插入数应该插入到哪个位置的编号
for(i=0;i<=h-1;i++)
{
if(m[i]>n)
{
k=i;//记住了插入的位置编号
break;
}
else //数组中没有一个比插入数大
k=h;//那么就把插入数插入到h编号的位置
}

//位置移
for(i=h;i>=k+1;i--)
{
m[i]=m[i-1];
}

//插入数
m[k]=n;

printf("数组插入数之后如下: ");
for(i=0;i<=h;i++)
{
printf("%4d",m[i]);
}
printf(" ");
h++;
}while(h<=9);

printf("数组已满,程序结束!");
}

原文地址:https://www.cnblogs.com/wyj1212/p/9006692.html