首先创建一个顺序表:从键盘读入一组整数(长度小于等于20),按输入顺序放入顺序表,输入以-1结束(注意-1不放到顺序表内);将创建好的顺序表元素依次输出到屏幕上。 2)在已创建好的顺序表中插入一个元素:从键盘读入需插入的元素值和插入位置,调用插入函数完成插入操作;然后将顺序表元素依次输出到屏幕上。 3)在已创建好的顺序表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作;然后将顺序表元素依次输出到屏幕上。 提示:相关常量和顺序表数据类型定义 4)在一个已经创建好的顺序表中,删除所有的负数。用C语言完成
时间: 2024-02-22 13:59:11 浏览: 110
好的,以下是一个用C语言实现的程序,可以完成您所描述的功能:
```c
#include <stdio.h>
#define MAX_SIZE 20
typedef struct {
int data[MAX_SIZE];
int length;
} SeqList;
void InitList(SeqList *L) {
L->length = 0;
}
void InsertList(SeqList *L, int elem, int pos) {
if (pos < 1 || pos > L->length + 1) {
printf("插入位置错误!\n");
return;
}
if (L->length == MAX_SIZE) {
printf("顺序表已满,无法插入!\n");
return;
}
for (int i = L->length - 1; i >= pos - 1; i--) {
L->data[i + 1] = L->data[i];
}
L->data[pos - 1] = elem;
L->length++;
}
void DeleteList(SeqList *L, int pos) {
if (pos < 1 || pos > L->length) {
printf("删除位置错误!\n");
return;
}
for (int i = pos; i < L->length; i++) {
L->data[i - 1] = L->data[i];
}
L->length--;
}
void DeleteNegative(SeqList *L) {
int i = 0;
while (i < L->length) {
if (L->data[i] < 0) {
DeleteList(L, i + 1);
} else {
i++;
}
}
}
void PrintList(SeqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SeqList L;
int elem, pos;
InitList(&L);
printf("请输入一组整数(以-1结束):\n");
while (L.length < MAX_SIZE) {
scanf("%d", &elem);
if (elem == -1) {
break;
}
L.data[L.length] = elem;
L.length++;
}
printf("顺序表内容为:");
PrintList(L);
printf("请输入插入元素的值和位置,用空格分隔:\n");
scanf("%d%d", &elem, &pos);
InsertList(&L, elem, pos);
printf("插入后顺序表内容为:");
PrintList(L);
printf("请输入删除元素的位置:\n");
scanf("%d", &pos);
DeleteList(&L, pos);
printf("删除后顺序表内容为:");
PrintList(L);
printf("删除所有负数后顺序表内容为:");
DeleteNegative(&L);
PrintList(L);
return 0;
}
```
程序中使用了一个结构体 `SeqList` 来表示顺序表,其中包含了一个整型数组 `data` 和一个表示当前顺序表长度的整型变量 `length`。
程序主要分为四个部分:
1. `InitList` 函数用于初始化顺序表。
2. `InsertList` 函数用于在顺序表的指定位置插入一个元素。
3. `DeleteList` 函数用于删除顺序表中指定位置的元素。
4. `DeleteNegative` 函数用于删除顺序表中所有的负数。
在主函数中,首先使用 `InitList` 函数初始化了顺序表。然后通过循环从键盘读入一组整数,并将这些整数依次放入顺序表中。接下来,依次调用 `InsertList` 函数、`DeleteList` 函数和 `DeleteNegative` 函数,完成了插入元素、删除元素和删除所有负数的操作。最后,使用 `PrintList` 函数将顺序表的内容输出到屏幕上。
希望这个程序可以帮助到您。
阅读全文