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