实现一个顺序表a[10]={21,55,45,69,12,36,87,74,56}线性表删除12。C语言代码实现
时间: 2024-09-20 07:12:35 浏览: 37
在C语言中,如果你想要从给定的顺序表(数组)a中删除元素12,由于数组是固定大小且不可变的,你需要创建一个新的数组来替换原数组,并将所有大于12的元素前移一位。这是一个简单的实现步骤:
```c
#include <stdio.h>
#define SIZE 10
void deleteElement(int a[], int n) {
if (n <= 0 || a[0] > 12) {
printf("Invalid operation: list is empty or the first element is greater than 12.\n");
return;
}
int i = 0; // 新数组的索引
for (int j = 1; j < n; ++j) {
if (a[j] != 12) { // 如果不是12,复制到新数组
a[i++] = a[j]; // 将元素移到新数组并更新索引
}
}
a[i] = 0; // 结束新数组,通常我们会用0表示列表结束
n--; // 减少实际元素的数量,因为最后一个元素实际上是空的
printf("After deleting 12: ");
for (i = 0; i < n; ++i) {
printf("%d ", a[i]);
}
}
int main() {
int arr[SIZE] = {21, 55, 45, 69, 12, 36, 87, 74, 56};
int n = sizeof(arr) / sizeof(arr[0]);
deleteElement(arr, n);
return 0;
}
```
运行这个程序,你会看到删除12后的结果。
阅读全文