顺序表运算的实现删除所有x=3的元素,初始时i=-1,j=0,C语言,用表格列出来
时间: 2024-09-08 12:04:40 浏览: 28
在C语言中,我们可以使用一个循环结构来遍历顺序表,并删除所有值为3的元素。这里假设我们有一个动态数组`arr`作为顺序表。以下是操作的步骤:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 假设最大长度
int arr[MAX_SIZE]; // 存储顺序表的数组
int i = -1; // 当前索引,从-1开始表示未初始化
int j = 0; // 删除后的有效元素索引
void delete_all_threes(int* arr, int size) {
while (i < size && arr[i] != 3) { // 遍历直到找到3或数组结束
i++;
}
while (i < size) { // 从下一个元素开始替换3
arr[j++] = arr[i];
i++; // 移动到下一个元素位置
}
arr[j] = '\0'; // 如果数组没满,添加空字符终止字符串(如果这是字符串数组)
}
// 示例:
// 初始化顺序表
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 3;
arr[5] = 6;
// 调用函数删除所有3
delete_all_threes(arr, sizeof(arr)/sizeof(arr[0]));
// 打印新的顺序表(只包含非3的元素)
for (int k = 0; k <= j; k++) {
printf("%d ", arr[k]);
}
printf("\n");