标题:初学java,好几个程序都出现这样的问题Exception in thread "main" java.la ...
只看楼主
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
结帖率:50%
已结贴  问题点数:20 回复次数:9 
初学java,好几个程序都出现这样的问题Exception in thread "main" java.lang.ArrayIndexOut
public class Match {
    public static void main(String args[]){
        int max,i,min,sum=0,ave;
        int[] a=new int[10];
        for(i=0;i<10;i++)
            a[i]=Integer.parseInt(args [i]);
        max=a[0];
        min=a[0];
        for(i=0;i<10;i++)
        {
            if(max<a[i])
                max=a[i];
            else if(min>a[i])
                min=a[i];
            sum=sum+a[i];
        }
            ave=(sum-max-min)/8;
            System.out.println("平均分为"+ave);
    }

}
求解
搜索更多相关主题的帖子: thread public java 
2014-03-11 19:00
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:10 
String args[] 里是空的 所以会报错
2014-03-12 14:31
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 2楼 hhwz
这不是java的一种格式吗?我上java的课才几节老师在讲语法知识,不太懂你说的,我之前的一些程序里面也是空的啊?若要填那要填什么?
2014-03-12 15:17
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
得分:10 
尼玛,你能认真点么?
public static void  main(String[]  args){}

我只是个演员,还是业余的!!
2014-03-12 16:13
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:0 
String args[] 很多情况下就是完全没有在用它,但是即便是没有用到,这个参数也不能不写,因为main方法就是规定这么写的
既然用到了就一定要写上参数的
当获取args[]里的值为NULL时 Integer.parseInt(args [i]);转换是会报错的


2014-03-12 16:40
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 4楼 经哥
这是可以的啊,位置没规定的
2014-03-13 16:48
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 5楼 hhwz
不太懂你讲的意思,可能还没有接触到,不过我用老师说的输入的格式这样做就可以了,但对于那种方法还是不太清楚要怎么写,要是你不嫌麻烦写出修改后的代码给我,,谢谢!!!
按照输入格式敲的
import java.util.Scanner;
public class Match {
    public static void main(String args[]){
        int max,i,min,sum=0,ave;
        int[] a=new int[10];
        for(i=0;i<10;i++)
            {
            Scanner in=new Scanner(System.in);
            a[i]=in.nextInt();
            }
        max=a[0];
        min=a[0];
        for(i=0;i<10;i++)
        {
            if(max<a[i])
                max=a[i];
            else if(min>a[i])
                min=a[i];
            sum=sum+a[i];
        }
            ave=(sum-max-min)/8;
            System.out.println("平均分为"+ave);
    }

}
2014-03-13 16:54
wlgo2108
Rank: 1
等 级:新手上路
威 望:1
帖 子:8
专家分:0
注 册:2013-10-15
得分:0 
回复 楼主 llt2013
你的代码没错,你运行的时候,尝试着在
cmd(命令窗口)中像我一样运行:
/下载$ javac Match.java
/下载$ java Match 101 11 2 2 333 333 222 11 123 111
平均分为114
2014-03-16 23:01
雪碧透心凉
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:40
专家分:131
注 册:2014-2-26
得分:0 
回复 8楼 wlgo2108
意思是 String args[]没有参数输入,是吧

  assume nothing,do more, need less,smile often and realize how fortunate you are right now.
2014-03-17 10:38
wlgo2108
Rank: 1
等 级:新手上路
威 望:1
帖 子:8
专家分:0
注 册:2013-10-15
得分:0 
回复 9楼 雪碧透心凉
侬不是很清楚,我以前看过相似的程序,建议是翻翻关于字符串和文本相关的知识。我也去看看,具体的再解释。
2014-03-17 15:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428326-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.229843 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved