鱼C论坛

 找回密码
 立即注册
查看: 2299|回复: 4

[已解决]一个有序数组如何插入一个数

[复制链接]
发表于 2023-10-6 22:44:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int n,add,j=0;
  6.     cin>>n;
  7.     int a[51];
  8.     for(int i=0;i<n;i++)
  9.     {
  10.         cin>>a[i];
  11.     }
  12.     cin>>add;
  13.     for(int i=0;i<n-1;i++)
  14.     {
  15.         if(a[i]<add&&a[i+1]>add)
  16.         {
  17.            
  18.         }
  19.    
  20.     }
  21.     for(int i=0;i<n;i++)
  22.     {
  23.         cout<<a[i]<<' ';
  24.     }
  25.     return 0;
  26. }
复制代码

if里面的判断内容不会写了
最佳答案
2023-10-6 22:45:14
在给定的代码中,您需要在有序数组中插入一个数。判断应该在哪个位置插入这个数。

您可以使用以下方法来插入一个数:

1. 遍历数组,找到第一个大于要插入数的元素的位置。
2. 将要插入的数插入到该位置,并将该位置之后的元素都向后移动一个位置。

以下是修改后的代码:

  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int n, add, j = 0;
  6.     cin >> n;
  7.     int a[51];
  8.     for (int i = 0; i < n; i++)
  9.     {
  10.         cin >> a[ i];
  11.     }
  12.     cin >> add;

  13.     // 找到插入位置
  14.     int insertIndex = 0;
  15.     for (int i = 0; i < n; i++)
  16.     {
  17.         if (a[ i] < add && a[i + 1] > add)
  18.         {
  19.             insertIndex = i + 1;
  20.             break;
  21.         }
  22.     }

  23.     // 将元素后移
  24.     for (int i = n - 1; i >= insertIndex; i--)
  25.     {
  26.         a[i + 1] = a[ i];
  27.     }

  28.     // 插入数
  29.     a[insertIndex] = add;

  30.     // 输出数组
  31.     for (int i = 0; i < n + 1; i++)
  32.     {
  33.         cout << a[ i] << ' ';
  34.     }
  35.     return 0;
  36. }
复制代码


在这个修改后的代码中,我们首先找到了要插入的位置 insertIndex ,然后将插入位置之后的元素都向后移动一个位置,最后将要插入的数插入到 insertIndex 位置。最后输出修改后的数组。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-6 22:47:51 | 显示全部楼层
Mike_python小 发表于 2023-10-6 22:45
在一个有序数组中插入一个数,可以通过遍历数组并寻找插入位置的方式实现。具体来说,我们可以从数组的第一 ...

有点儿看不懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-10 05:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表