建立一个顺序表,随机产生10个100以内的整数,并按要求完成: (1)在屏幕上显示顺序表中的10个整数; (2)把值为b的元素插入到值为a的元素后面,若不存在a,则把b插入到表尾,显示更新后的顺序表用C语言表示
时间: 2023-06-02 19:01:39 浏览: 111
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 10
#define MAX_VALUE 100
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
void initList(SqList *L) {
L->length = 0;
}
void displayList(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
void insertElement(SqList *L, int a, int b) {
int i;
for (i = 0; i < L->length; i++) {
if (L->data[i] == a) {
break;
}
}
if (i < L->length) {
for (int j = L->length - 1; j > i; j--) {
L->data[j + 1] = L->data[j];
}
L->data[i + 1] = b;
L->length++;
} else {
L->data[L->length] = b;
L->length++;
}
}
int main() {
SqList L;
initList(&L);
srand(time(NULL));
for (int i = 0; i < MAX_SIZE; i++) {
L.data[i] = rand() % MAX_VALUE;
L.length++;
}
printf("原始顺序表:\n");
displayList(L);
int a = 0, b = 0;
printf("请输入要插入的元素a和b:");
scanf("%d %d", &a, &b);
insertElement(&L, a, b);
printf("更新后的顺序表:\n");
displayList(L);
return 0;
}
```
阅读全文