删除数组中指定元素几种方法C语言实现
时间: 2023-07-16 07:13:59 浏览: 62
在 C 语言中,删除数组中指定元素的方法有多种,下面介绍其中三种常见的方法:
方法一:使用循环遍历数组,找出要删除的元素,然后将其后面的元素向前移动一个位置。
```c
#include <stdio.h>
void delete(int arr[], int len, int val)
{
int i, j;
for (i = 0; i < len; i++) {
if (arr[i] == val) {
for (j = i; j < len - 1; j++) {
arr[j] = arr[j + 1];
}
len--;
i--;
}
}
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 4, 6, 7, 4};
int len = sizeof(arr) / sizeof(int);
delete(arr, len, 4);
return 0;
}
```
方法二:使用指针遍历数组,找出要删除的元素,然后将其后面的元素向前移动一个位置。
```c
#include <stdio.h>
void delete(int arr[], int len, int val)
{
int *p = arr;
int i;
for (i = 0; i < len; i++) {
if (*p == val) {
int *q = p;
for (q = p; q < arr + len - 1; q++) {
*q = *(q + 1);
}
len--;
i--;
} else {
p++;
}
}
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 4, 6, 7, 4};
int len = sizeof(arr) / sizeof(int);
delete(arr, len, 4);
return 0;
}
```
方法三:使用双指针遍历数组,将不等于要删除元素的元素移到数组前面。
```c
#include <stdio.h>
void delete(int arr[], int len, int val)
{
int *p = arr, *q = arr;
int i;
for (i = 0; i < len; i++) {
if (*p != val) {
*q++ = *p;
}
p++;
}
len = q - arr;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 4, 6, 7, 4};
int len = sizeof(arr) / sizeof(int);
delete(arr, len, 4);
return 0;
}
```
以上是三种常见的删除数组中指定元素的方法,具体选择哪种方法可以根据实际情况来决定。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)