当前位置: 代码迷 >> J2SE >> 求一组数的最大值和平均数-的一点有关问题
  详细解决方案

求一组数的最大值和平均数-的一点有关问题

热度:35   发布时间:2016-04-23 20:12:50.0
求一组数的最大值和平均数------的一点问题

import java.util.Scanner;

public class b_02 {

/**
 * 求一组数的最大值和平均数,这组数的长度由用户决定
 */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = 0;
int max_num = 0;
int sum = 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());

if(sb.charAt(i)>max_num){
max_num = sb.charAt(i);
}
sum += Integer.parseInt(sb.substring(i, i + 1));
}
System.out.println("最大值: "+max_num);
System.out.println("平均数: "+sum/num);
}
}


以上是我写的代码,只输入个位数字没啥问题,但输入33、99、888就不对了,但想不出怎么改了,希望各位指点一下,感谢
------解决思路----------------------


        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);

------解决思路----------------------
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多少次就有多少个元素)
  相关解决方案