在java中输入若干数字,用数组?

其实是因为一道题,要求若干学生成绩平均分,而学生有多少个却不知道,用数组的话要定义长度,那么如果定义了100长度,而输入的只有80个学生,那么多出来的20个就不好弄了,有没有什么办法使自己输入多少个学生的成绩就算多少个学生的成绩的平均分啊?
我想要文字说明方法即可,不需要具体程序~
import java.util.*;

public class NewClass1 {
public static void main(String[] args) {
System.out.println("请输入学生的数目:");
int num;
Scanner in=new Scanner(System.in);
num=in.nextInt();
int m[]=new int[num];
System.out.println("请输入学生成绩:");
for (int i = 0; i < num;i++ )
m[i] = in.nextInt();
System.out.println("刚才输入的学生的成绩为:");
for(int i=0;i<5;i++)
System.out.print(m[i]);
int sum=0;
for (int i=0; i<5; i++)
sum+=m[i];
System.out.println("\n学生的平均成绩是:"+sum/5);
}
}
看看我刚才编的这个程序,运行没有问题,可以自行输入需要的学生数目,但是运行到把成绩导出后,后面计算总成绩和平均分就不显示了

显示的错误是:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

Java Result: 1
这是一个数组越界问题啊,我现在把i初始化为args.length就行了,为什么啊

list是什么啊,怎么用啊?

定义个for循环!
定义个sum将每个学生的成绩加起来 同时定义个变量i
没循环一次就加一!

等循环结束后 i 就是学生个数.
sum/i 就可以了

如果是手工输入!可以做个计数,输入一个就累加一,最后存到 j 中
int[] student = new student[j];
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-27
如果长度不确定,不要用数组,用List.
长度是根据存入的对象个数确定的.
取出来的时候转换为基本类型的包装类,然后取出数字就行了.
相似回答