c++ 从数组中随机的取出一个数(不能重复)

有没有人在啊,想请问下,c++ 从数组中随机的取出一个数(不能重复)
最新回答
千囚栀愿

2024-11-06 00:48:11

代码如下:

import java.util.Arrays;

public class suiji {

    public static void main(String[] args) {

         int[] arrays=new  int[33];

        for(int i=1;i<34;i++) {

            arrays[i-1]=i;

        }

        int a=0;

        while(a<8) {

            a++;

            int i=(int)(Math.random()*arrays.length);

            System.out.print(arrays[i]+"\t");

            arrays[i] = arrays[arrays.length-1];

           arrays = Arrays.copyOf(arrays, arrays.length-1);

        }

    }

}

扩展资料

C++ 支持数组

数据结构
,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

下一站等候

2024-11-06 04:18:01

方法很多
复制该数组
随机的生成一个不大于该数组长度的数
获取该位置的值,并赋0
以后每遇到该位置是0的跳过
知道该数组中为0
花Ж葬

2024-11-06 03:58:18

/*
a[1] = 36
a[7] = 38
a[3] = 13
a[6] = 95
a[8] = 54
Press any key to continue
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int a[10] = {12,36,52,13,30,87,95,38,54,19};
int b[10] = {0}; // 全部初始化为0
int i,t,n = 10,m = 5;
srand((unsigned)time(NULL));
for(i = 0; i < m; ++i) { // 随机显示5个数组元素
t = rand()%n;
if(b[t] == 0) {
b[t] = 1;
printf("a[%d] = %d\n",t,a[t]);
}
else i--;
}
return 0;
}