用数据结构(c语言)编写一个关于202300705001,202300705002……学号的顺序表,并删除学号的第七位
时间: 2024-09-06 20:03:12 浏览: 48
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
要实现这个功能,我们可以定义一个结构体来表示顺序表,并且定义一个函数来删除学号的第七位数字。首先,我们需要了解顺序表的实现方式。顺序表通常使用数组来存储数据,同时需要一个变量来记录数组中数据的个数。下面是一个简单的C语言实现示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // 定义顺序表的最大长度
// 定义顺序表的结构体
typedef struct {
char students[MAX_SIZE][15]; // 存储学号的数组,假设学号不超过14位
int length; // 顺序表当前长度
} SeqList;
// 初始化顺序表
void InitList(SeqList *list) {
list->length = 0;
}
// 在顺序表中插入学号
int InsertStudent(SeqList *list, const char *studentNumber) {
if (list->length >= MAX_SIZE) {
return -1; // 顺序表已满,无法插入
}
strcpy(list->students[list->length], studentNumber);
list->length++;
return 0; // 插入成功
}
// 删除学号的第七位数字
void DeleteSeventhChar(char *studentNumber) {
int len = strlen(studentNumber);
if (len > 6) {
memmove(studentNumber + 6, studentNumber + 7, len - 6); // 删除第七位字符
studentNumber[len - 1] = '\0'; // 添加字符串结束符
}
}
// 打印顺序表中的学号
void PrintList(SeqList *list) {
for (int i = 0; i < list->length; i++) {
printf("%s\n", list->students[i]);
}
}
int main() {
SeqList studentList;
InitList(&studentList);
// 假设要插入的学号为"202300705001"等
InsertStudent(&studentList, "202300705001");
InsertStudent(&studentList, "202300705002");
// ... 可以继续插入更多学号
// 打印插入后的顺序表中的学号
printf("Before deletion:\n");
PrintList(&studentList);
// 删除学号的第七位数字
DeleteSeventhChar(studentList.students[0]);
DeleteSeventhChar(studentList.students[1]);
// ... 对所有学号执行删除操作
// 打印删除第七位数字后的顺序表中的学号
printf("\nAfter deletion:\n");
PrintList(&studentList);
return 0;
}
```
这段代码首先定义了一个顺序表结构体`SeqList`,它包含一个二维字符数组用于存储字符串形式的学号,以及一个整数用于记录顺序表的当前长度。`InsertStudent`函数用于向顺序表中插入学号,`DeleteSeventhChar`函数用于删除学号字符串中的第七位字符,`PrintList`函数用于打印顺序表中的所有学号。
阅读全文