有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
将插入位置之后的数据后移,然后再插入位置保存插入的数据就可以了。
代码如下:
#include <iostream>
using namespace std;
int main()
{
int a[100], i, n, data,pos;
cout << "请输入数组元素个数:";
cin >> n;
cout << "请输入" << n << "个数据:";
for (i = 0; i < n; i++)
cin >> a[i];
cout << "请输入插入位置和插入的数据:";
cin >> pos >> data;
for (i = n; i >= pos; i--)
a[i] = a[i - 1];
a[pos - 1] = data;
n++;
//输出
cout << "插入后:" << endl;
for (i = 0; i < n; i++)
cout << a[i] << " ";
return 0;
}
题主想要的应该是这种插入
#include <stdio.h>
int main()
{
int array[100] = {1, 2, 3, 6, 11};
int len = 5;
int insert;
for (int i = 0; i < len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
printf("请输入要插入的数字:");
scanf("%d", &insert);
int flag = 0;
for (int i = 0; i <= len; i++)
{
if (insert < array[i])
{
for (int j = len; j > i; j--)
{
array[j] = array[j - 1];
}
array[i] = insert;
len++;
flag = 1;
break;
}
}
if (!flag)
{
array[len] = insert;
len++;
}
for (int i = 0; i < len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!