用c语言随机生成5个人的信息,包括学号(int,100000~200000之间 )、姓名(英文字符串),每个人的信息存到链表结点(按学号从小大到达的顺序)。
时间: 2024-06-10 18:07:26 浏览: 88
好的,这个问题可以回答。以下是用 C 语言随机生成五个人信息存储到链表中的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义链表结点的结构体
typedef struct ListNode {
int id;
char name[20];
struct ListNode* next;
} ListNode;
int main() {
// 定义链表头结点和当前结点指针
ListNode* head = NULL;
ListNode* current = NULL;
// 生成五个人的信息并存储到链表中
for (int i = 0; i < 5; i++) {
// 随机生成学号和姓名
int id = rand() % 100000 + 100000;
char name[20];
for (int j = 0; j < 6; j++) {
name[j] = 'A' + rand() % 26;
}
name[6] = '\0';
// 创建链表结点并存储学号和姓名
ListNode* node = malloc(sizeof(ListNode));
node->id = id;
strcpy(node->name, name);
node->next = NULL;
// 按学号从小大到达的顺序插入链表
if (head == NULL || id < head->id) {
node->next = head;
head = node;
} else {
current = head;
while (current->next != NULL && id > current->next->id) {
current = current->next;
}
node->next = current->next;
current->next = node;
}
}
// 打印链表中每个人的信息
current = head;
while (current != NULL) {
printf("学号:%d,姓名:%s\n", current->id, current->name);
current = current->next;
}
// 释放链表结点的内存
current = head;
while (current != NULL) {
ListNode* temp = current;
current = current->next;
free(temp);
}
return 0;
}
```
希望这个代码对你有所帮助!
阅读全文