(1)(3分)定义单链表结点结构类型PACKAGE,用于保存一个同学的包裹记录,含:学号(11位字符串),姓名(不超过4个汉字),食品类包裹、日用品包裹、服饰用品包裹的数量,分别为整数。还需要一个指针域,用于保存下一条购买记录的结点地址。 (2)(4分)创建一条单链表,用于存放上表的数据。 (3)(5分)请问一班同学最常网购(表中包裹总量最多的类型)的是哪类商品(假设各类包裹的总量都不相同)?请输出商品的类型名称,例如“食品类包裹”、“日用品包裹”或“服饰用品包裹”。 //************************* //请完成 PACKAGE 类型的定义 typedef struct { }PACKAGE; //************************* //请编写本函数,创建一条含40条包裹记录的单链表 PACKAGE *creat() {} //************************* //请编写本函数,输出一班同学最喜欢网购的商品类型 void favofPACKAGE(PACKAGE *head) {} //************************** int main() { PACKAGE *head; head = creat(); //请完成creat()函数 favofPACKAGE(head); // 请完成 favofPACKAGE()函数 free(head); //释放单链表的存储空间 return 0; }
时间: 2023-02-07 12:51:05 浏览: 98
(1) 定义单链表结点结构类型PACKAGE
```
typedef struct PACKAGE
{
char student_id[12]; // 学号(11位字符串)
char name[5]; // 姓名(不超过4个汉字)
int food_package; // 食品类包裹数量
int daily_package; // 日用品包裹数量
int clothing_package; // 服饰用品包裹数量
struct PACKAGE *next; // 指向下一个结点的指针
} PACKAGE;
```
(2) 创建一条单链表,用于存放上表的数据
```
PACKAGE *creat()
{
PACKAGE *head, *p, *q;
head = (PACKAGE *)malloc(sizeof(PACKAGE)); // 分配内存空间
head->next = NULL; // 头结点的指针指向NULL
p = head; // p指向头结点
// 循环创建40个结点
for (int i = 0; i < 40; i++)
{
q = (PACKAGE *)malloc(sizeof(PACKAGE)); // 分配内存空间
scanf("%s%s%d%d%d", q->student_id, q->name, &q->food_package, &q->daily_package, &q->clothing_package); // 输入各个字段的值
q->next = NULL; // 新结点的指针指向NULL
p->next = q; // 将新结点添加到链表中
p = q; // p指向新结点
}
return head; // 返回头结点的地址
}
```
(3) 输出一班同学最喜欢网购的商品类型
```
void favofPACKAGE(PACKAGE *head)
{
PACKAGE *p;
int max = 0; // 保存各类包裹的最大数量
char *type; // 保存最
阅读全文