现在有1到10的随机数,每1分钟添加10个1到10的随机数为一列(添加到的数值不能是重复的),用c语言代码的形式写出前五列前五名,相同数字的出现次数,以及第一列到第五列不同行数是否有单双数
时间: 2024-12-22 12:27:26 浏览: 13
在C语言中,我们可以使用结构体、队列(或数组)来存储数据,并维护每个列的排名和计数。这里提供一个简化的代码示例,使用`time()`函数获取时间戳并模拟随机数生成,同时记录前五列和统计信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 10
#define QUEUE_SIZE 50
#define COLUMN_COUNT 5
typedef struct {
int num;
int count;
} RankEntry;
// 队列结构和相关的操作
typedef struct QueueNode {
RankEntry entry;
struct QueueNode *next;
} QueueNode;
QueueNode *queue_init() { return NULL; }
void queue_push(QueueNode **head, RankEntry entry) {
QueueNode *new_node = (QueueNode *)malloc(sizeof(QueueNode));
new_node->entry = entry;
new_node->next = *head;
*head = new_node;
}
RankEntry queue_pop(QueueNode **head) {
if (*head == NULL) return (RankEntry){0, 0};
RankEntry ret = (*head)->entry;
QueueNode *temp = *head;
*head = (*head)->next;
free(temp);
return ret;
}
// 主程序
int main() {
srand(time(0)); // 初始化随机数种子
QueueNode *queue[COLUMN_COUNT];
for (int i = 0; i < COLUMN_COUNT; ++i) {
queue[i] = queue_init();
}
int data[MAX_NUM][COLUMN_COUNT];
int unique_count[COLUMN_COUNT][MAX_NUM] = {0};
for (int col = 0; col < COLUMN_COUNT; ++col) {
for (int row = 0; ; row++) {
int random_num = rand() % MAX_NUM + 1;
if (unique_count[col][random_num - 1] == 0) {
// 插入新数
queue_push(&queue[col], (RankEntry){random_num, 1});
data[row][col] = random_num;
unique_count[col][random_num - 1]++;
// 检查是否达到五列五名
if (row >= 4) {
printf("Column %d:\n", col + 1);
for (int i = 0; i < 5; ++i) {
RankEntry top_entry = queue_pop(&queue[col]);
printf("%d: %d occurrences\n", top_entry.num, top_entry.count);
}
break;
}
} else {
// 已经有该数,跳过
continue;
}
// 更新时间并等待一分钟
sleep(60); // 这里只是一个模拟,实际应用需要替换为定时器
}
}
// 打印每一列是否包含奇数和偶数行
for (int i = 0; i < COLUMN_COUNT; ++i) {
bool has_even_row = false, has_odd_row = false;
for (int j = 0; j <= 4; ++j) {
if ((data[j * COLUMN_COUNT + i] % 2) == 0) has_even_row = true;
if ((data[j * COLUMN_COUNT + i] % 2) != 0) has_odd_row = true;
}
printf("Column %d: Even rows: %s, Odd rows: %s\n", i + 1, has_even_row ? "Yes" : "No", has_odd_row ? "Yes" : "No");
}
return 0;
}
阅读全文