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

相关推荐
JoyCheung-29 分钟前
Free底层是怎么释放内存的
linux·c语言
byzh_rc43 分钟前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
qq_433554541 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿1 小时前
知识蒸馏学习总结
人工智能·算法
闲看云起2 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了2 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法
黛色正浓2 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode
轻微的风格艾丝凡2 小时前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
No0d1es3 小时前
2025年12月 GESP CCF编程能力等级认证C++四级真题
算法·青少年编程·等级考试·gesp·ccf
CodeByV3 小时前
【算法题】快排
算法