要求用C语言编写函数,从一个排好序的整型数组中删去某数。
时间: 2024-03-01 10:51:34 浏览: 84
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
void delete(int arr[], int n, int num) {
int i, j, flag = 0;
for (i = 0, j = 0; i < n; i++) {
if (arr[i] == num) {
flag = 1;
continue;
}
arr[j++] = arr[i];
}
if (flag == 0) {
printf("未找到要删除的数!\n");
} else {
printf("删除后的数组为:\n");
for (i = 0; i < j; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]);
int num = 5;
printf("原数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
delete(arr, n, num);
return 0;
}
```
这段代码中,我们定义了一个 delete 函数,用于从一个排好序的整型数组中删除某个数。在函数内部,我们使用两个指针 i 和 j 来遍历数组,并且使用一个 flag 标记来判断是否找到要删除的数。当遇到要删除的数时,我们将 flag 置为 1,并跳过这个数;否则,我们将这个数复制到数组的前面,并将 j 指针向后移动一个位置。最后,我们根据 flag 的值输出相应的提示信息,或者输出删除后的数组。
在主函数中,我们定义了一个整型数组和要删除的数,然后调用了 delete 函数来删除这个数。这个程序的输出结果如下:
```
原数组为:
1 2 3 4 5 6 7 8 9 10
删除后的数组为:
1 2 3 4 6 7 8 9 10
```
阅读全文