A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目:定义一个长度为10的数组,随机存储1-10的数据到里面,十个数据不能重复。求代码

7 个回复

倒序浏览
本帖最后由 cat73 于 2016-8-9 21:11 编辑

[Java] 纯文本查看 复制代码
        final int[] array = new int[10];

        for (int index = 0, num = 1; index < 10 && num <= 10; index++, num++) {
            array[index] = num;
        }

        final Random rand = new Random();
        for (int i = array.length; i > 1; i--) {
            ArrayUtil.swap(array, i - 1, rand.nextInt(i));
        }
回复 使用道具 举报
本帖最后由 cat73 于 2016-8-9 21:23 编辑

[Java] 纯文本查看 复制代码
        final int N = 10;
        final int[] array = new int[N];

        final Random rand = new Random();
        for (int num = 1; num <= N; num++) {
            int index = rand.nextInt(N);

            while (array[index] != 0) {
                index = index + 1 >= N ? 0 : index + 1;
            }
            
            array[index] = num;
        }
回复 使用道具 举报
int型数组么
回复 使用道具 举报
帮你顶一下
回复 使用道具 举报
import java.util.Random;

//题目:定义一个长度为10的数组,随机存储1-10的数据到里面,十个数据不能重复
public class Demo27 {


        public static void main(String[] args) {
                Random r = new Random();
                int[] arr = new int[10];
                arr[0] = r.nextInt(10)+1;
                int index = 1;

                        while(index<10) {
                        boolean b = true;
                        int number = r.nextInt(10)+1;
                        for( int i = 0 ; i < index ; i++) {
                                if(arr[i]==number) {
                                        b=false;
                                        break;
                               
                                }else {
                                        //b=true;
                                }
                        }
                        if(b) {
                                arr[index]=number;
                                index++;
                        }
                       
                }
                for (int i : arr) {
                        System.out.print(i+"  ");
                }
       
        }
       
}
回复 使用道具 举报
public static void main(String[] args) {
                int[] arr=new int[10];
                arr[0]=(int)(Math.random()*(10))+1;
                a:for(int i=1;i<arr.length;i++){
                        outer:while(true){
                                int a=(int)(Math.random()*(10))+1;
                                for(int x=0;x<i;x++){
                                        if(a==arr[x]){
                                                continue outer;
                                        }
                                }
                                arr[i]=a;
                                continue a;
                        }
                }
                for(int i=0;i<arr.length;i++){
                        System.out.println(arr[i]);
                }
        }
回复 使用道具 举报
final int N = 10; final int[] array = new int[N];   final Random rand = new Random(); for (int num = 1; num <= N; num++) {     int index = rand.nextInt(N);       while (array[index] != 0) {         index = index + 1 >= N ? 0 : index + 1;     }           array[index] = num; }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马