标题:求多个整数的和及平均值问题,求解
只看楼主
勤劳的猪
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2018-3-19
结帖率:40%
已结贴  问题点数:20 回复次数:12 
求多个整数的和及平均值问题,求解
题目: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");
    }
}
搜索更多相关主题的帖子: 整数 平均值 main count sum 
2018-03-19 13:15
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:5 
程序代码:
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;
    }
}

假如人生没有梦想,和咸鱼有什么区别!
2018-03-19 14:30
勤劳的猪
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2018-3-19
得分:0 
谢谢大佬,
2018-03-19 14:55
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:5 
程序代码:
package com.xiaoa.demo;

import java.util.Scanner;

public class Calculate {
    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);
        
        sc.close();

    }
    
    //求数组的平均值
    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;
    }
}
忘记关闭资源了!!!罪过,罪过

假如人生没有梦想,和咸鱼有什么区别!
2018-03-19 15:08
桃花岛主丶
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:58
注 册:2018-3-20
得分:10 
public class Calculate {
    public static void main(String[] args) {
        System.out.println("请输入要计算的整数个数:");
        Scanner sc = new Scanner(System.in);
        int count =sc.nextInt();
        int []arr=new int[count];
        int sum=0;
        for (int i = 1; i < arr.length+1; i++) {
            System.out.println("请输入第"+i+"个整数:");
            int num=sc.nextInt();
            sum+=num;
        }
        System.out.println("和:"+sum);
        System.out.println("平均:"+sum*1.0/count);
    }
}
2018-03-20 00:59
勤劳的猪
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2018-3-19
得分:0 
好简洁啊,厉害了
2018-03-20 08:09
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:0 
回复 5楼 桃花岛主丶
你输入中文试试

假如人生没有梦想,和咸鱼有什么区别!
2018-03-20 09:00
桃花岛主丶
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:58
注 册:2018-3-20
得分:0 
回复 7楼 疯狂的小a
啥?
2018-03-20 11:17
桃花岛主丶
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:58
注 册:2018-3-20
得分:0 
回复 6楼 勤劳的猪
可以把数组去掉   循环中的arr.length换成count  
2018-03-20 11:53
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:0 
回复 8楼 桃花岛主丶

假如人生没有梦想,和咸鱼有什么区别!
2018-03-20 14:02



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




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

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