参考下:#include <stdio.h>
#define MAXSIZE 15
int move(int num[], int ci, int cnum)
{
int i;
cnum++;
for(i=cnum; i>ci; i--)
{
num[i] = num[i-1];
}
return cnum;
}
int insert(int num[], int n, int cnum)
{
int i;
if(cnum < MAXSIZE) // 判断是否超出数组的最大容量
{
if (n >= num[cnum-1])// 如果待插入的数比最后一个数大或相等,则直接插入到最后
{
num[cnum] = n;
cnum++; // 数组元素个数 +1
}
else
{
for(i=0; i<cnum; i++)
{
if(n < num[i])
{
cnum = move(num, i, cnum); // 移动数组后面的元素
num[i] = n;
break;
}
}
}
}
else
{
printf("数组已满,无法执行插入操作~!!!\n\n");
}
return cnum;
}
void print(int num[], int cnum)
{
int i;
for(i=0; i<cnum; i++)
{
printf("%d ", num[i]);
}
printf("\n");
}
int main(void)
{
int num[MAXSIZE] = {1,2,3,4,5,6,7,8,9};
int n;
int cnum = 9; // 用于存入数组元素的个数
while(1)
{
printf("请输入个整数:");
scanf("%d", &n);
cnum = insert(num, n, cnum);
print(num, cnum);
printf("当前数组元素的个数是:%d 个\n", cnum);
}
}
|