用c语言算法实现随机生成10个整数,建立一个顺序表
时间: 2024-09-29 19:13:46 浏览: 42
在C语言中,我们可以使用`rand()`函数结合`srand()`函数来生成随机数,并通过循环创建一个顺序表。以下是一个简单的例子:
首先,我们需要包含必要的头文件:
```c
#include <stdio.h>
#include <stdlib.h> // 包含rand和srand函数
#include <time.h> // 包含时间相关的函数
```
然后,定义一个顺序表的结构体和一些辅助函数:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建顺序表头部
Node* createList() {
Node* head = NULL;
return head;
}
// 在链表尾部添加新节点
void append(int value, Node** head) {
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = value;
(*head)->next = NULL;
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = (Node*)malloc(sizeof(Node));
current->next->data = value;
current->next->next = NULL;
}
}
// 随机生成并添加10个整数到顺序表
void generateRandomList(Node** head) {
srand((unsigned)time(NULL)); // 设置随机数种子,保证每次程序运行生成不同的随机数
for (int i = 0; i < 10; i++) {
int randomNum = rand() % 100 + 1; // 生成1到100之间的随机整数
append(randomNum, head);
}
}
```
最后,在主函数中调用上述函数创建并打印顺序表:
```c
int main() {
Node* list = createList();
generateRandomList(&list);
// 打印顺序表
Node* temp = list;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
return 0;
}
```
这个程序会生成并存储10个随机整数,然后打印出来。
阅读全文