c语言删除数组中的指定元素
时间: 2024-06-12 11:10:31 浏览: 135
好的,针对你的问题,我可以给出以下代码示例:
```c
#include <stdio.h>
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = 10; // 数组长度
int del = 5; // 要删除的元素
int i, j;
// 查找要删除的元素
for (i = 0; i < n; i++) {
if (arr[i] == del) {
// 找到要删除的元素,将后面的元素向前移动
for (j = i; j < n - 1; j++) {
arr[j] = arr[j + 1];
}
n--; // 数组长度减1
i--; // 继续查找当前位置是否还有要删除的元素
}
}
// 输出删除后的数组
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
以上代码中,我们首先定义了一个长度为10的数组 `arr`,然后定义了要删除的元素 `del`,接着使用两个循环来查找和删除要删除的元素。最后输出删除后的数组。
相关问题
c语言字符数组删除指定元素
要删除字符数组中的指定元素,可以使用循环和条件语句来实现。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_char(char* str, char c) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != c) {
str[j] = str[i];
j++;
}
}
str[j] = '\0'; // 最后一个字符设为字符串结束符
}
int main() {
char str[] = "hello, world!";
char c = 'o';
remove_char(str, c);
printf("%s\n", str);
return 0;
}
```
在这个示例代码中,`remove_char` 函数接受一个字符数组和一个要删除的字符作为参数。它使用两个指针 `i` 和 `j`,其中 `i` 指向要检查的字符,`j` 指向要保留的字符。如果字符不是要删除的字符,则将其复制到 `j` 指向的位置,然后将 `j` 增加 1。否则,跳过该字符。最后,将 `j` 指向的位置设为字符串结束符,以便正确终止字符串。
在 `main` 函数中,我们定义了一个字符数组 `str` 和一个要删除的字符 `c`。然后,我们将 `str` 和 `c` 作为参数传递给 `remove_char` 函数并打印结果。在这个例子中,输出将是 `hell, wrld!`,因为所有的 `o` 都被删除了。
C语言删除数组中指定角标元素
以下是C语言删除数组中指定角标元素的代码示例:
```c
#include <stdio.h>
#define N 10
int main() {
int a[N];
for(int i=0;i<N;i++) {
scanf("%d",&a[i]);
}
puts("\nOriginal: ");
for(int i=0;i<N;i++) {
printf("%d ",a[i]);
}
int index;
printf("\nEnter the index of the element to be deleted: ");
scanf("%d", &index);
for(int i=index;i<N-1;i++) {
a[i]=a[i+1];
}
puts("\nLater : ");
for(int i=0;i<N-1;i++) {
printf("%d ",a[i]);
}
return 0;
}
```
用户需要输入要删除的元素的索引,然后将该元素之后的所有元素向前移动一个位置,以覆盖要删除的元素。最后,输出更新后的数组。
阅读全文