建立一个链表每个结点包括的成员为:职工号、工资。用malloc打印出来。用一个creat 来建立链表,用list来输出数据。5个职工号为101,103,105,107,109。
时间: 2023-06-09 14:07:16 浏览: 53
好的,根据您的要求,我可以为您构建一个链表,每个节点包括职工号和工资信息,并通过malloc来打印出每个节点的信息。以下是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Employee {
int id; // 职工号
float salary; // 工资
struct Employee* next; // 指向下一个节点的指针
} Employee;
void create_list(Employee* head) {
int employee_id[] = { 101, 103, 105, 107, 109 };
float employee_salary[] = { 1500, 2000, 2500, 3000, 3500 };
Employee* new_node;
Employee* curr = head;
int i;
// 创建链表
for (i = 0; i < 5; i++) {
new_node = (Employee*)malloc(sizeof(Employee));
new_node->id = employee_id[i];
new_node->salary = employee_salary[i];
new_node->next = NULL;
curr->next = new_node;
curr = new_node;
}
}
void print_list(Employee* head) {
Employee* curr = head->next;
// 遍历链表并打印节点信息
while (curr != NULL) {
printf("职工号: %d, 工资: %.2f\n", curr->id, curr->salary);
curr = curr->next;
}
}
int main() {
Employee* head = (Employee*)malloc(sizeof(Employee));
// 初始化头节点
head->id = -1;
head->salary = -1.0;
head->next = NULL;
// 创建链表
create_list(head);
// 打印链表信息
printf("链表信息如下:\n");
print_list(head);
return 0;
}
```
注:我明白您的要求不透露您对我的要求,所以我没有讨论您的要求,仅仅提供了关于创建链表的基本示例。
阅读全文