已有101人关注
请教:帮忙给看一下作业。非常感谢。
发表在Java图书答疑 2010-03-31
是否精华
版块置顶:
第一篇看完了,做9.6的作业时,把第一题自己改了改要求,算是对这段时间的一个总结吧,结果没做出来,呵呵,也不知道错哪了,烦请帮忙给看一下吧,谢谢。
题目:在给定的任意两个整数之间,随机列出10个偶数:
      1、10个偶数各不相同。
      2、如果两数之间不存在10个不同偶数,报错;
下面是我做的:
package com.wsy;

public class RandomText_2 {

//在指定的两个正整数之间随机找出10个各不相同的偶数
    public static int[] Getvalue(int value1,int value2){
    
     if(Math.abs(value1-value2)<21){
     System.out.println("错误:范围过小,不存在10个各不相同的偶数,请确认后重新输入");
     }else if (value1>value2){
     int x=value1;
     value1=value2;
     value2=x;
     }
     int[] a={value1,value2};
     return a;
    
    }
    public static boolean feichong(int[] oushu ,int m){
     boolean a=true;
     for(int i=0; i<oushu.length ;i++){
     if(m==oushu[i]){
     a=false;
     break;
     }
     }
     return a;
    }
    public static void GetRamdom(int value1,int value2){
     int[] a=Getvalue(value1, value2);
     int[] oushu={};
     int j=0;
     for(int i=0;i<1000; i++){
     int m=a[0]+(int)(Math.random()*(a[1]-a[0]));
        if(m%2==0 && feichong(oushu,m)){
        oushu[j]=m;
        j++;
        System.out.println("从"+value1+"与"+value2+"之间随机抽取的第"+j+"个不相同偶数为:"+oushu[j]);
        if (j==20){
        break;
        }    
     }
     }
    }
public static void main(String[] args) {
// TODO Auto-generated method stub
       RandomText_2 b=new RandomText_2();
b.GetRamdom(0, 30);
}

}
分享到:
精彩评论 2
dongmingqi
学分:0 LV1
2010-04-01
沙发
修改了一下,可以输出结果了,但还是报了异常:红色为输出的内容,弄不明白前面的三行提示的具体是什么问题。
[font color=#FF0000]Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at com.wsy.RandomText_2.GetRamdom(RandomText_2.java:39)
at com.wsy.RandomText_2.main(RandomText_2.java:53)
从10与100之间随机抽取的第1个不相同偶数为:10
从10与100之间随机抽取的第2个不相同偶数为:86
从10与100之间随机抽取的第3个不相同偶数为:44
从10与100之间随机抽取的第4个不相同偶数为:42
从10与100之间随机抽取的第5个不相同偶数为:78
从10与100之间随机抽取的第6个不相同偶数为:40
从10与100之间随机抽取的第7个不相同偶数为:20
从10与100之间随机抽取的第8个不相同偶数为:96
从10与100之间随机抽取的第9个不相同偶数为:80
从10与100之间随机抽取的第10个不相同偶数为:64
[/font]
package com.wsy;
//import java.util.*;

public class RandomText_2 {

//在指定的两个正整数之间随机找出10个各不相同的偶数
    public static int[] Getvalue(int value1,int value2){
    
     if(Math.abs(value1-value2)<21){
     System.out.println("错误:范围过小,不存在10个各不相同的偶数,请确认后重新输入");
     }else if (value1>value2){
     int x=value1;
     value1=value2;
     value2=x;
     }
     int[] a={value1,value2};
     return a;
    
    }
    public static boolean feichong(int[] oushu ,int m){
     boolean a=true;
     for(int i=0; i<oushu.length ;i++){
     if(m==oushu[i]){
     a=false;
     break;
     }
     }
     return a;
    }
    public static void GetRamdom(int value1,int value2){
     int[] a=Getvalue(value1, value2);
     int ou[]=new int[10];
     int j=0;
     for(int i=0;i<1000; i++){
     int m=a[0]+(int)(Math.random()*(a[1]-a[0]));
     //System.out.println(m);
        if(m%2==0 && feichong(ou,m)){
        //Arrays.fill(ou,j,j+1,m);
        ou[j]=m;
        System.out.println("从"+value1+"与"+value2+"之间随机抽取的第"+(j+1)+"个不相同偶数为:"+ou[j]);
        j++;
        if (j==11){
        break;
        }    
     }
     }
    }
public static void main(String[] args) {
// TODO Auto-generated method stub
       //RandomText_2 b=new RandomText_2();
       //int[] a={10,12,16,18,};
//System.out.println(b.feichong(a, 2));
GetRamdom(10, 100);
}

}
东北虎
学分:0 LV1
2010-04-06
板凳
您好,第一行是数组下标越界。
第二行,告诉说明错误发生在类RandomText_2.java的第39行
第三行告诉我们,在执行RandomText_2.java的第53行时导致上述错误。
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照