永发信息网

用Java判断7个手动输入的数字的重复与区间 该怎么编写? 前六个数字的

答案:3  悬赏:60  手机版
解决时间 2021-02-10 15:16
用Java判断7个手动输入的数字的重复与区间 该怎么编写? 前六个数字的区间是1-33 最后一个数字是1-16 如果重复 代码通知错误。
最佳答案
public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<Integer>(7);
        while (list.size() < 7) {
            System.err.println(String.format("第%s个数字:", list.size() + 1));
            try {
                int i = Integer.valueOf(sc.next());
                if (!list.contains(i)) {
                    if ((list.size() < 6 && i >= 1 && i <= 33) || (list.size() == 6 && i >= 1 && i <= 16))
                        list.add(i);
                    else
                        throw new Exception(String.format("数字不在区间%s内", list.size() < 6 ? "[1,33]" : "[1,16]"));
                } else
                    throw new Exception("输入重复");
            } catch (NumberFormatException e) {
                System.err.println("请输入数字");
                sc.reset();
            } catch (Exception e) {
                System.err.println(e.getMessage());
                sc.reset();
            }
        }
System.out.println("结束");
        }
全部回答
定一个数组a[34],并初始化为0,如果输入一个数就记为1,这样如果输入时该数已经为1就输出 重复输入。 再看看别人怎么说的。
public static void main(String[] args) { int a[]=new int [6]; int b=(int)(Math.random()*15+1); int[] balls = new int[35];//创建一个有35个长度的数组 for(int i=0;i<balls.length;i++){ balls[i] = i + 1; //循环放入1至35 } boolean[] used = new boolean[balls.length];//创建一个boolean数组,用于记录是否重复 for(int i = 0;i<a.length;i++){//循环向a数组中放入元素 for(;;){ int index = (int)(Math.random()*35);//生成一个随机数,这里不再+1了,因为随机的是下标,+1会出现越界 if(used[index]==true){ //如果used中,index的位置为true,则表示已经被随机过了 continue;//如果已经被随机过,则重新循环生成随机数 } a[i] = balls[index];//如果没有被随机过,则将index所对应位置的元素放入a数组中 used[index] = true;//同时将该index位置设置为true,表示已经被随机过了 break;//退出当前循环,继续下一次向a中添加元素 } } for(int i=0;i<a.length;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } // for(int i=0;i<a.length;i++){ // System.out.println(a[i]); // }//输出数组不需要这么麻烦 System.out.println(Arrays.toString(a)); System.out.println(+b); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乌鲁木齐市天山区安全生产监督管理局地址在什
兵团安全生产监督管理局地址有知道的么?有点
我妈原来不胃疼,做过胃镜后反而胃疼了,疼了
下列设想中,从生物工程技术的原理看,无法实
道教正一派第十八代张天师是谁?
韦德之道2宣告和勇士哪个上脚好看点
求专家:关于中小学生在12306上购买火车票的
翠贤居鼎锅狗肉我想知道这个在什么地方
事业编报名审核未通过,如何修改报考单位
乌鲁木齐市安全生产监督管理局地址在哪,我要
高中物理安全车距的求解方法及步骤:
电脑主机电源风扇一般转的有多快?
克拉玛依市克拉玛依区安全生产监督管理局地址
四海旅馆这个地址在什么地方,我要处理点事
凯越刹车片多少钱,凯越刹车片怎么样
推荐资讯
下表说明两种微生物生长所必须的生长因子以及
奇瑞QQ3前轮轴承有几种型号
黄牛 用什么软件定苹果
停车场(凤城名邸西)地址好找么,我有些事要过
意林校园版好还是读者校园版好
怎样清理虾塘黑鱼
明月心家私地址在什么地方,我要处理点事
威海屹宇钢结构有限公司地址有知道的么?有点
请问华硕U80V最高能换什么型号的CPU
小米2A下载的腾讯手机管家,上拉菜单快捷键的
晓涵瑜伽专业馆地址在哪,我要去那里办事
飞翔家电服务部怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?