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

假设已经有一个排序好的数组,要求输入一个数,判断这个数在该数组中是否存在,如果存在将该数删除后输出,如果没有,将该数插入到该数组中,插入后数组仍是排序好的。然后输出。(一定要用指针实现)谢谢

#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;

}

温馨提示:答案为网友推荐,仅供参考