自己输了一组数,然后输入一个数,最后删除数组中最后一个等于x的元素c语言
时间: 2024-10-18 18:04:09 浏览: 28
在C语言中,如果你想要输入一组整数,并在用户再次输入一个特定值x后删除数组中最后一个等于x的元素,可以采用这样的步骤:
1. 首先,你需要创建一个动态数组(如果数组大小未知),或者预定义一个固定大小的数组并设置初始值。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 可视情况调整数组大小
int main() {
int arr[MAX_SIZE], size = 0, x, i;
// 输入一组整数直到遇到空值
printf("请输入一组整数,输入-1结束:");
while (scanf("%d", &arr[size]) == 1 && arr[size] != -1) {
size++;
}
// 删除最后一个等于x的元素
printf("请输入要删除的数值x:");
scanf("%d", &x);
for (i = size - 1; i >= 0; i--) { // 从后向前遍历数组
if (arr[i] == x) {
memmove(&arr[i], &arr[i + 1], sizeof(arr[i]) * (size - i - 1)); // 用移动操作删除元素
size--;
break;
}
}
// 输出处理后的数组
printf("处理后的数组:");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,我们通过`memmove`函数将要删除元素的位置替换为后面的元素,然后缩小数组的大小。注意这个程序假设数组有足够的空间容纳剩余元素。如果数组已满并且需要删除最后一个元素,那么`memmove`不会起作用,因为数组边界已经被到达了。
阅读全文