![]() |
#2
疯狂的小a2018-03-19 14:30
![]() package com.xiaoa.demo; import java.util.Scanner; public class Calculate { @SuppressWarnings("resource") public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = -1; for (;;) { try { System.out.println("请输入数据个数:"); count = Integer.parseInt(sc.next()); break;// 满足条件,跳出循环 } catch (Exception e) { // 报错 System.out.println("只能是整数个个数"); continue; } } //定义数组 int[] arr = new int[count]; for (int i = 0; i < count; i++) { for(;;) { try { System.out.printf("请输入第%d个数字:", i + 1); arr[i] = sc.nextInt(); break; } catch (Exception e) { // 报错 System.out.println("输入的只能是整数"); continue; } } } //求数组和 int sum = getSum(arr); //求平均值 float avg = getAvg(arr); System.out.printf("avg:%f\r\n",avg); System.out.printf("sum:%d",sum); } //求数组的平均值 public static float getAvg(int[] arr) { int sum = getSum(arr); return sum/arr.length; } // 求数组的和 public static int getSum(int[] arr) { int sum = 0; for (int i : arr) { sum += i; } return sum; } } |
题目:1、定义一个类Calculate ,其中有一个main方法。2、在main方法中,首先调用Scanner类,从键盘输入一个整数放到变量count中,count表示将要从键盘读入的整数个数,然后调用循环语句从键盘读入count个整数,将这count个整数求和,然后求出平均值。最后输出和及平均值。
这个代码哪里错了?是不是不对?运行时出现“Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Calculate.main(Calculate.java:7)” 新手求大佬指点
import java.util.Scanner;
public class Calculate{
static float next=0,sum=0,average=0;
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int count=sc.nextInt();//读入int型数据
System.out.println(args[0]);
String arg = args[0];
while(!arg.equals(" "))
{
next=Float.parseFloat(arg);
sum=sum+next;
if(count== args.length){
break;
}
}
average=sum/count;
System.out.print("Sum="+sum+"\naverage="+average+"\n");
}
}