Scanner input = new Scanner(System.in);
        int num = 0;
        int max_num = 0;
        int sum = 0;
        System.out.println("需要输入多少个数?");
        num = input.nextInt();
        for (int i = 0; i < num; i++) {
            System.out.println("第 " + (i + 1) + "个数:");
            int v= input.nextInt();
            if (v > max_num) {
                max_num = v;
            }
            sum += v;
        }
        System.out.println("最大值: " + max_num);
        System.out.println("平均数: " + sum / num);

解决方案 »

  1.   

    sum += Integer.parseInt(sb.substring(i, i + 1));
    你这个地方写错了
    substring(i, i + 1),你这样写取到的肯定是长度为1的string按你的代码改才测试程序:
      public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int num = 0;
            System.out.println("需要输入多少个数?");
            num = input.nextInt();
            StringBuffer sb = new StringBuffer("");
            for(int i = 0;i<num;i++){
                System.out.println("第 "+(i+1)+"个数:");
                sb.append(input.next());
                System.out.println(sb);
            }
            }
    输出:
    需要输入多少个数?
    5
    第 1个数:
    1111
    1111
    第 2个数:
    2222
    11112222
    第 3个数:
    333
    11112222333
    第 4个数:
    444
    11112222333444看到没,StringBuffer的append方法是追加到原数组的后面,而不是说每一次append的内容都以数组元素的形式保存(并不是说每一次append都相当于往数组里面添加一个元素,append多少次就有多少个元素)
      

  2.   

    感谢,提问之前我也用不能变动的数组写了下:Scanner input = new Scanner(System.in);
    int num = 0;
    int max_num = 0;
    int sum = 0;
    System.out.println("需要输入多少个数?");
    num = input.nextInt();
    int[] shuzu = new int[num];
    for(int i =0;i<num;i++){
    System.out.println("第 "+(i+1)+"个数:");
    shuzu[i] = input.nextInt();
    sum += shuzu[i];
    }
    for(int i = 0;i<num; i++){ if(shuzu[i]>max_num){
    max_num = shuzu[i];
    }
    }
    System.out.println("最大值: "+max_num);
    System.out.println("平均数: "+sum/num); 但是您的更加简单!
      

  3.   

    感谢,由于刚学StringBuffer,就想用他试一下,但弄巧成拙了。