C语言——在有序数组中插入一个新的元素,且数组的排列不变

在插入新元素时,数组需要多一个空间,所以在 malloc 时分配 len + 1 的空间。

#include <stdio.h>

#include <stdlib.h>

void insert_arry(int *arr, int len,int target)

{

int index;

for (int i = 0; i < len; i++)

{

if (target >= arr[i] && target <= arr[i + 1])

{

index = i + 1;

break;

}

}

for (int j = len - 1; j >= index; j--)

{

arr[j + 1] = arr[j];

}

arr[index] = target;

for (int i = 0; i < len+1; i++)

{

printf("%d ", arr[i]);

}

}

int main()

{

int len;

int target;

scanf_s("%d", &len);

int *arr = (int*)malloc(sizeof(int) * (len+1));

scanf_s("%d", &target);

if (arr == NULL)

{

return 1;

}

else

{

for (int i = 0; i < len; i++)

{

scanf_s("%d", &arr[i]);

}

}

insert_arry(arr, len, target);

free(arr);

return 0;

}

结果

原数组的大小为9,待插入的元素为50

相关推荐
扶摇接北海1765 分钟前
洛谷:B4477 [语言月赛 202601] 考场安排
数据结构·c++·算法
爱丽_12 分钟前
AQS 的 `state`:volatile + CAS 如何撑起原子性与可见性
java·前端·算法
2301_7887705513 分钟前
OJ模拟5
数据结构·算法
羊小猪~~15 分钟前
算法/力扣--字符串经典题目
c++·考研·算法·leetcode·职场和发展·哈希算法
攒了一袋星辰16 分钟前
10万级用户数据日更与定向推送系统的可靠性设计
java·数据库·算法
nap-joker18 分钟前
PIPE4:快速PPI预测器,用于综合的跨物种和跨物种相互作用组
算法·多模态生物医学数据分析·蛋白质互作网络
Lilixxs18 分钟前
施耐德 M580、M340 PLC 中 BOOL 类型数组地址
数据结构·plc·施耐德·m580·m340·unity pro·control expert
磊 子26 分钟前
类和对象—>析构+拷贝+运算符重载
开发语言·c++·算法
人道领域28 分钟前
LeetCode【刷题日记】:数组篇(1)含原理讲解
算法·leetcode·职场和发展