c语言产生随机整数分行输出
时间: 2024-12-02 22:16:23 浏览: 15
在C语言中,生成随机整数并行输出可以借助于标准库函数`srand()`和`rand()`,以及线程或多进程技术。首先,你需要设置一个随机种子,通常使用当前时间,通过`srand(time(0))`来初始化。然后,你可以创建一个循环,每次循环生成一个随机整数,并使用适当的函数将其打印到不同的线程或进程中。
以下是一个简单的例子,展示了如何在一个主程序中创建两个子线程,每个线程负责生成和打印一定范围内的随机数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
// 生成随机数的范围
#define MIN_RAND 1
#define MAX_RAND 100
void *print_random_numbers(void *thread_id) {
int *id = (int *)thread_id;
int num;
for(int i = 0; i < 5; i++) { // 每个线程打印5个随机数
srand((unsigned)time(NULL) + (*id)); // 使用线程ID作为种子增加伪随机性
num = rand() % (MAX_RAND - MIN_RAND + 1) + MIN_RAND; // 避免溢出
printf("Thread %d: Random number %d\n", *id, num);
}
pthread_exit(NULL);
}
int main() {
pthread_t thread1, thread2; // 创建两个线程
int thread_ids[] = {1, 2}; // 线程ID
// 创建线程
for(size_t i = 0; i < sizeof(thread_ids)/sizeof(*thread_ids); ++i) {
if(pthread_create(&thread1, NULL, print_random_numbers, &thread_ids[i]) != 0) {
perror("Error creating thread");
return 1;
}
}
// 等待所有线程结束
for(size_t i = 0; i < sizeof(thread_ids)/sizeof(*thread_ids); ++i) {
pthread_join(thread1, NULL);
}
return 0;
}
阅读全文