typedef struct { int data[maxsize]; int len; }seqlist;
时间: 2023-05-16 16:01:33 浏览: 47
这行代码定义了一个包含两个成员的结构体typedef seqlist。
seqlist这个结构体包含一个长度为maxsize的数组data和一个整型变量len。数组data可以存储任意类型的数据,且最多可以存储maxsize个元素。变量len用于记录数组中实际存储的元素个数,起到了一个计数器的作用。
使用typedef关键字可以为这个结构体取一个别名,方便代码的编写。在使用时只需要使用别名seqlist即可代替结构体的完整名称。同时这个结构体的定义可以重复多次使用,方便了代码的重构和维护。
这个结构体是一种线性数据结构,可以用于存储和操作具有线性关系的数据。在实际编程中,可以利用这个结构体来实现各种数据结构,如栈、队列、堆栈等,也可以用于算法中的各种数据处理。
相关问题
typedef struct { int elem[MAXSIZE]; int last = -1; }SeqList;
This code is not valid in C, as struct members cannot be initialized inside the struct declaration. The correct way to define this struct would be:
```
typedef struct {
int elem[MAXSIZE];
int last;
} SeqList;
SeqList myList;
myList.last = -1;
```
#include<stdio.h> #include<malloc.h> #define MaxSize 10 //最大人数 /* 成员信息 */ typedef struct Member { int Number; char ID[20]; char Sex[4]; int Age; char Birthday[20]; }Mem; typedef struct SeqList *PtrToSeqList; struct SeqList { Mem Data[MaxSize]; int count; //当前人数 }; typedef PtrToSeqList List; void PrintMenu(); //打印菜单 List InitList(); //初始化表 int IsFuLL(List L); //是否为满 void AddMember(List L); //添加成员
void DeleteMember(List L); //删除成员 void ModifyMember(List L); //修改成员信息 void SearchMember(List L); //查找成员信息 void PrintList(List L); //打印所有成员信息 int main() { List L; int choice = 0; L = InitList(); while (1) { PrintMenu(); printf("请输入选项: "); scanf("%d", &choice); switch (choice) { case 1: AddMember(L); break; case 2: DeleteMember(L); break; case 3: ModifyMember(L); break; case 4: SearchMember(L); break; case 5: PrintList(L); break; case 6: printf("程序退出!\n"); return 0; default: printf("输入有误,请重新输入!\n"); break; } } return 0; } void PrintMenu() { printf("\n\n"); printf("\t\t\t\t\t\t通讯录管理系统\n"); printf("\t\t\t\t\t\t1.添加成员\n"); printf("\t\t\t\t\t\t2.删除成员\n"); printf("\t\t\t\t\t\t3.修改成员信息\n"); printf("\t\t\t\t\t\t4.查找成员信息\n"); printf("\t\t\t\t\t\t5.打印所有成员信息\n"); printf("\t\t\t\t\t\t6.退出\n"); printf("\n\n"); } List InitList() { List L; L = (List)malloc(sizeof(struct SeqList)); L->count = 0; return L; } int IsFuLL(List L) { if (L->count == MaxSize) { printf("通讯录已满,无法添加新成员!\n"); return 1; } else { return 0; } } void AddMember(List L) { int i; if (IsFuLL(L)) { return; } printf("请输入成员信息:\n"); printf("学号:"); scanf("%d", &(L->Data[L->count].Number)); printf("身份证号:"); scanf("%s", L->Data[L->count].ID); printf("性别:"); scanf("%s", L->Data[L->count].Sex); printf("年龄:"); scanf("%d", &(L->Data[L->count].Age)); printf("生日:"); scanf("%s", L->Data[L->count].Birthday); L->count++; printf("成员添加成功!\n"); } void DeleteMember(List L) { int i, j, n; char ID[20]; printf("请输入要删除的成员身份证号:"); scanf("%s", ID); for (i = 0; i < L->count; i++) { if (strcmp(L->Data[i].ID, ID) == 0) { for (j = i; j < L->count - 1; j++) { L->Data[j] = L->Data[j + 1]; } L->count--; printf("删除成功!\n"); return; } } printf("没有找到该成员!\n"); } void ModifyMember(List L) { int i, n; char ID[20]; printf("请输入要修改的成员身份证号:"); scanf("%s", ID); for (i = 0; i < L->count; i++) { if (strcmp(L->Data[i].ID, ID) == 0) { printf("请输入修改后的信息:\n"); printf("学号:"); scanf("%d", &(L->Data[i].Number)); printf("身份证号:"); scanf("%s", L->Data[i].ID); printf("性别:"); scanf("%s", L->Data[i].Sex); printf("年龄:"); scanf("%d", &(L->Data[i].Age)); printf("生日:"); scanf("%s", L->Data[i].Birthday); printf("修改成功!\n"); return; } } printf("没有找到该成员!\n"); } void SearchMember(List L) { int i, n; char ID[20]; printf("请输入要查找的成员身份证号:"); scanf("%s", ID); for (i = 0; i < L->count; i++) { if (strcmp(L->Data[i].ID, ID) == 0) { printf("学号:%d\n", L->Data[i].Number); printf("身份证号:%s\n", L->Data[i].ID); printf("性别:%s\n", L->Data[i].Sex); printf("年龄:%d\n", L->Data[i].Age); printf("生日:%s\n", L->Data[i].Birthday); return; } } printf("没有找到该成员!\n"); } void PrintList(List L) { int i; if (L->count == 0) { printf("通讯录为空!\n"); return; } printf("所有成员信息如下:\n"); for (i = 0; i < L->count; i++) { printf("学号:%d\n", L->Data[i].Number); printf("身份证号:%s\n", L->Data[i].ID); printf("性别:%s\n", L->Data[i].Sex); printf("年龄:%d\n", L->Data[i].Age); printf("生日:%s\n", L->Data[i].Birthday); printf("\n"); } }