用c++编程:设整型数组a中按序存放有以下数据:2、4、5、8、12、14、16、18,20、30。从键盘任意输入 一个整数插人a数组,插入后该数组仍有序。输出插入后数组a中的内容
时间: 2023-12-22 16:06:03 浏览: 79
好的,这是一道关于数组的插入排序题。以下是代码实现:
```
#include <stdio.h>
#define SIZE 10
void insert(int a[], int num);
int main()
{
int a[SIZE] = {2, 4, 5, 8, 12, 14, 16, 18, 20, 30};
int num, i;
printf("请输入要插入的整数:");
scanf("%d", &num);
insert(a, num);
printf("插入后的数组为:");
for (i = 0; i < SIZE + 1; i++)
{
printf("%d ", a[i]);
}
return 0;
}
void insert(int a[], int num)
{
int i, j;
for (i = 0; i < SIZE; i++)
{
if (num < a[i])
{
for (j = SIZE - 1; j >= i; j--)
{
a[j + 1] = a[j];
}
a[i] = num;
break;
}
}
if (i == SIZE)
{
a[i] = num;
}
}
```
插入一个数的操作是先从数组头开始查找,找到第一个比插入数大的位置,然后将该位置及以后的元素向后移动一位,最后将插入数放到该位置即可。你可以试着输入一个数,看看程序能否正确地输出插入后的数组内容。