c语言中如何从存有1000数据的数组中,随机获取100个数据呢
时间: 2023-11-13 14:03:04 浏览: 87
您可以使用C语言中的rand()函数来生成一个随机数,然后使用该随机数访问数组中对应的数据,重复这个过程直到获取100个数据为止。具体实现方法可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int arr[1000];
int i, j, temp;
srand((unsigned)time(NULL));
//初始化数组
for (i = 0; i < 1000; i++)
{
arr[i] = i;
}
//将数组打乱
for (i = 999; i >= 1; i--)
{
j = rand() % (i + 1);
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//获取100个随机数
for (i = 0; i < 100; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
```
相关问题
c语言中如何从存有1000数据的字符串数组中,随机获取100个数据呢
你可以使用随机数生成器来生成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;
}
```
阅读全文