黑马程序员技术交流社区

标题: 从班级中随机抽查10个学生(随机选出座位号)交作业 [打印本页]

作者: heima_jinchen    时间: 2015-9-14 09:55
标题: 从班级中随机抽查10个学生(随机选出座位号)交作业
import java.util.Random;
class Test_Random1 {
        public static void main(String[] args) {
                Random random = new Random();
                int num=10;                                    //随机抽查10个学生的座位号,用数组存储
                int[] arr = new int[num];        
                for (int i=0;true&&arr[num-1]==0 ;i++ ) {     //如果数组没存够10个 就一直循环,直到存够为止,(int[]数组默认值为0)
                        int x = random.nextInt(85)+1;             //1-85的随机数 比如座位号
                        int index=getIndex(arr,x);                //去除重复的数 ,查找生成的x是否已存在数组中
                        if (index==-1) {                            //如果没有存在,则存进数组
                                arr[i]=x;
                        }else{                                     //否则下标i减一,防止数组下标越界
                                i--;
                        }
                }
                printArr(arr);                                //打印
        }
       
        //查找某个数在数组中出现的第一个位置
        public static int getIndex(int[] arr,int key) {
                int index=-1;
                for (int j=0;j<10&&arr[j]!=0 ;j++ ) {
                                if(arr[j]==key){
                                        index=j;
                                        break;
                                }
                }
                return index;
        }
        //打印数组
        public static void printArr(int[] arr) {
                for (int i=0; i<arr.length; i++){
                        if(i!=arr.length-1)  {      //只要不是数组中最后一个数,就加上逗号.
                                System.out.print(arr[i]+",");
                        } else {                         //输出最后一个数时就不用加上逗号了
                                System.out.print(arr[i]);
                       }
                }
        }
}

作者: silencea    时间: 2015-9-14 09:58
这个可以给响哥用
作者: heima_jinchen    时间: 2015-9-14 09:59
silencea 发表于 2015-9-14 09:58
这个可以给响哥用

哈哈哈,...................................响哥
作者: benpaodeboluo    时间: 2015-9-14 10:00
我觉得那个选择的人数可以定义为一个键盘录入就更好了啊
作者: 张淑亮    时间: 2015-9-14 10:01
超赞,但是没看懂
作者: hhuxiaolang    时间: 2015-9-14 10:06
本帖最后由 hhuxiaolang 于 2015-9-14 11:21 编辑

没用响哥说的第二个方法,直接用Math.random()写了

作者: 一笑过千山    时间: 2015-9-14 10:07
高手,我竟看不懂
作者: liuyafei    时间: 2015-9-14 10:09
小伙子牛逼啊
作者: 641113495    时间: 2015-9-14 10:13
"看前面黑洞洞,定是那贼巢穴,待俺赶上前去,杀他个干干净净,咚!!!又是黑马程序员弄的,杀贼都限号,这人多贼少,什么时候是个头啊!!!"
作者: 刘登飞    时间: 2015-9-14 10:15
修改成键盘录入的话是不是会更叼?{:2_32:}
作者: stray_cat    时间: 2015-9-14 10:30
很好,这样我也可以试图完成彩票的程序了
作者: 0902赵建新    时间: 2015-9-14 10:49
吓的我赶紧去做作业了。。。。。。。。。。。。赞了。
作者: heima_jinchen    时间: 2015-9-14 11:05
liuyafei 发表于 2015-9-14 10:09
小伙子牛逼啊

哎,远着呢
作者: liuyafei    时间: 2015-9-14 11:06
运行过了  赞啊
作者: heima_jinchen    时间: 2015-9-14 11:07
benpaodeboluo 发表于 2015-9-14 10:00
我觉得那个选择的人数可以定义为一个键盘录入就更好了啊

额,,,,这个不是要电脑随机生成么,,,是么,,
作者: heima_jinchen    时间: 2015-9-14 11:11
张淑亮 发表于 2015-9-14 10:01
超赞,但是没看懂

额,有空交流交流哈{:2_30:}
作者: heima_jinchen    时间: 2015-9-14 11:13
刘登飞 发表于 2015-9-14 10:15
修改成键盘录入的话是不是会更叼?

额,,,,这个不是要电脑随机生成么,,,是么,,
作者: heima_jinchen    时间: 2015-9-14 11:15
benpaodeboluo 发表于 2015-9-14 10:00
我觉得那个选择的人数可以定义为一个键盘录入就更好了啊

恩恩,对的对的{:2_31:}
作者: heima_jinchen    时间: 2015-9-14 11:16
刘登飞 发表于 2015-9-14 10:15
修改成键盘录入的话是不是会更叼?

嗯嗯,对的对的
作者: 喜欢、简单点    时间: 2015-9-14 11:36
强…不愧是班长就是牛。
作者: heima_jinchen    时间: 2015-9-14 12:02
第七行的for循环      for (int i=0;i<arr[num-1]==0;i++ )     //   1,    for循环的分号中间的条件表达式也可以是这样的  for (int i=0;i<arr.length;i++ )     //   2,    for循环的分号中间的条件表达式也可以是这样的
作者: 丶洛夜    时间: 2015-9-14 12:13
厉害厉害
作者: liuyafei    时间: 2015-9-15 21:12
班长今天不发啦
作者: ganjx    时间: 2015-9-15 21:16
那个true&&可以不用
作者: wangjie    时间: 2015-10-6 21:54
挺棒的 我也写一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2