java字符串数组for循环赋值的问题

创建一个字符串数组,通过average()方法,计算平均值,从命令行接收参数作为字符串数组的元素,当遇到不能转换为整型数值的字符串时,进行异常处理。
import java.util.Scanner;
class Average
{

public static void main(String[] args)
{
int i,n=0;
double m;
String a=new String [5];
Scanner scanner=new Scanner(System.in);
for(i=0;i<=10;i++)
{
String a[i]=scanner.nextLine();
}
for(i=0;i<=10;i++)
{
n=n+a[i];
}
m=n/10;
System.out.println(m);
}
}
求助 问题在哪里

第1个回答  2015-01-05
你的String a=new String[5]写错了,应该写成String[ ] a=new String[5],你这样写编译器没报错吗?
你可以写成这样
int [] a=new int[10];
double average=0;
Scanner s=new Scanner(System.in);
for(int i=0;i<10;i++){
a[i]=s.nextInt();}
for(int i=0;i<10;i++){
average+=a[i];}
average=average/10;
System.out.println(average+" ");就可以了
第2个回答  2015-01-05
你接收了字符串直接相加得到的还是字符串,你要先把字符串转换为int再相加,用Integer.parseInt,进行转换
第3个回答  推荐于2017-12-16
1,没理解题意,题意是要从命令行参数及(String []args)的args中获取要求平均数的那些数字,而不是通过Scanner扫描键盘输入。
2,主观限定个数不大于10,错误
3,10次循环却只传教了一个长度5的数组,错误
4,语法错误,类型+变量名只有在第一次声明的时候需要,以后只用变量名,故String a[i]=scanner.nextLine();错误,因为a有前置声明。
5,因为数组元素类型是String,需要调用Double.parseDouble等类似方法,转换为数字形式进行+和除法运算
6,没做异常处理,因为输入的参数不一定都能转化为数字本回答被提问者和网友采纳
相似回答