c语言代码,先输入线性表长度n,然后输入n个整数建立整数顺序表。在顺序表上练习①按值查找;②删除元素 的操
时间: 2023-05-15 13:06:08 浏览: 230
非常感谢您的提问!以下是您需要的C语言代码:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
int LocateElem(SqList L, int e) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == e) {
return i;
}
}
return -1;
}
int ListDelete(SqList *L, int e) {
int i = LocateElem(*L, e);
if (i == -1) {
return 0;
}
for (; i < L->length - 1; i++) {
L->data[i] = L->data[i + 1];
}
L->length--;
return 1;
}
int main() {
SqList L;
printf("请输入线性表长度n:");
scanf("%d", &L.length);
printf("请输入%d个整数,用空格隔开:", L.length);
for (int i = 0; i < L.length; i++) {
scanf("%d", &L.data[i]);
}
int e;
printf("请输入要查找的元素:");
scanf("%d", &e);
int pos = LocateElem(L, e);
if (pos == -1) {
printf("未找到该元素!\n");
} else {
printf("该元素在第%d个位置上。\n", pos + 1);
}
printf("请输入要删除的元素:");
scanf("%d", &e);
int res = ListDelete(&L, e);
if (res == 0) {
printf("未找到该元素,删除失败!\n");
} else {
printf("删除成功!\n");
printf("删除后的线性表为:");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
return 0;
}
希望这个代码能够帮助您练习按值查找和删除元素的操作。如果您有其他问题,欢迎随时提出!
阅读全文