C语言问题 假设已经有一个排序好的数组,要求输入一个数,判断。。。指针实现? 5

假设已经有一个排序好的数组,要求输入一个数,判断这个数在该数组中是否存在,如果存在将该数删除后输出,如果没有,将该数插入到该数组中,插入后数组仍是排序好的。然后输出。(一... 假设已经有一个排序好的数组,要求输入一个数,判断这个数在该数组中是否存在,如果存在将该数删除后输出,如果没有,将该数插入到该数组中,插入后数组仍是排序好的。然后输出。(一定要用指针实现)谢谢 展开
 我来答
拥抱每一天哦
2020-03-18 · TA获得超过267个赞
知道小有建树答主
回答量:751
采纳率:79%
帮助的人:76.8万
展开全部

#include <stdio.h>


int *isInArray(int *arr, int length, int n) {

int flag = 0;

for (int i = 0; i < length; i++) {

if (*(arr + i) == n) {

for (int n = 0; n < length - i - 1; n++) {

*(arr + i + n) = *(arr + i + n + 1);

}

flag = 1;

}

}

if (n > *(arr + length - 1))

*(arr + length) = n;

for (int i = 0; i < length; i++) {

if (flag == 0) {

if (*(arr + i) < n && *(arr + i + 1) > n) {

for (int j = 0; j < length - i - 1; j++) {

*(arr + length - j) = *(arr + length - j - 1);

}

*(arr + i + 1) = n;

}

}

}

return arr;

}


int main() {

int arr[] = {2, 4, 6, 8, 10};

isInArray(arr, 5, 9);//插入9

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

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

printf("\n");


isInArray(arr, 6, 4);//删除4

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

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

printf("\n");

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式