c语言中如何从存有1000数据的字符串数组中,随机获取100个数据呢
时间: 2023-11-13 11:03:05 浏览: 135
1-1000个数字中随机抽取1组数据
你可以使用随机数生成器来生成100个在0到999之间的随机数,然后通过这些随机数作为下标来访问字符串数组,从而得到100个随机数据。具体实现可参考下面的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_LEN 1000 // 字符串数组的最大长度
#define PICK_NUM 100 // 随机获取数据的个数
int main() {
char str_arr[MAX_LEN][20]; // 定义字符串数组
int i, j, rand_num, picked_num = 0;
int pick_arr[PICK_NUM] = {0}; // 标记已经选中的下标
srand((unsigned int)time(NULL)); // 初始化随机数种子
// 初始化字符串数组,本示例使用数字字符串,实际情况可以根据需要进行修改
for (i = 0; i < MAX_LEN; i++) {
sprintf(str_arr[i], "%d", i);
}
// 随机获取100个数据
while (picked_num < PICK_NUM) {
rand_num = rand() % MAX_LEN; // 生成随机数
for (j = 0; j < PICK_NUM; j++) {
if (pick_arr[j] == rand_num) { // 检查这个下标是否已经被选中
break;
}
}
if (j >= PICK_NUM) { // 如果这个下标没有被选中过,则取出对应元素
printf("%s ", str_arr[rand_num]);
picked_num++;
pick_arr[picked_num - 1] = rand_num; // 标记这个下标已经被选中
}
}
return 0;
}
```
阅读全文