当前位置: 代码迷 >> Java相关 >> 输出任意数求平均,如果是0,输出平均值。
  详细解决方案

输出任意数求平均,如果是0,输出平均值。

热度:180   发布时间:2010-09-09 18:08:20.0
输出任意数求平均,如果是0,输出平均值。
程序代码:
import java.util.Scanner;


public class AB {

    /**
     *
@param args
     
*/
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        // TODO Auto-generated method stub
        System.out.println("请输入数字:(0退出)");
        double a=input.nextDouble();
        
        double sum = 0;
        double avg;
        int num=0;
        
        
        while(a!=0){
            System.out.println("请输入数字:(0退出)");
            a=input.nextDouble();
            
            sum=sum+a;
            num++;   
        }
        
        avg=(double)sum/num;
        System.out.println(num);
        
        System.out.println("总数:"+sum);
        System.out.println("平均数:"+avg);
        
    }

}




为什么总数的值没有加第一个数呢?

比如输入5,结果怎么这样呢?

请输入数字:(0退出)
5
请输入数字:(0退出)
0
总数:0.0
平均数:0.0


输入3个数的话就是这个,哪里错了呀?
请输入数字:(0退出)
5
请输入数字:(0退出)
5
请输入数字:(0退出)
5
请输入数字:(0退出)
0
3
总数:10.0
平均数:3.3333333333333335
搜索更多相关的解决方案: 平均值  输出  

----------------解决方案--------------------------------------------------------
阿弥陀佛,求平均应该用函数,不要用sum++记录
----------------解决方案--------------------------------------------------------
不是总数除以个数就可以了吗?
为啥不对呢?
----------------解决方案--------------------------------------------------------
总数哪里第一个总是记不上 就是求和的时候没有算第一个。
----------------解决方案--------------------------------------------------------
以下是引用xingjing314在2010-9-9 20:01:16的发言:

总数哪里第一个总是记不上 就是求和的时候没有算第一个。


因为你根本没有把第一个a加到总和里面去
----------------解决方案--------------------------------------------------------
sum=sum+a;这个不是吗?把a加进去?
----------------解决方案--------------------------------------------------------
Scanner input=new Scanner(System.in);
        // TODO Auto-generated method stub
        System.out.println("请输入数字:(0退出)");
        double a=input.nextDouble();//这里是第一个a
        
        double sum = 0;
        double avg;
        int num=0;
        
        
        while(a!=0){
            System.out.println("请输入数字:(0退出)");
            a=input.nextDouble();//第一次进入循环后输入的a是整个程序的第二个a
            
            sum=sum+a;//这里是将a加入到sum中,那么第一个a什么时候加进去呢?
            num++;   
        }
----------------解决方案--------------------------------------------------------
你这好像是直接加后三个数了  判断第一个是否为0了
----------------解决方案--------------------------------------------------------
知道了 谢谢版主!
----------------解决方案--------------------------------------------------------
这样改,把a初始化0也不对呀?
程序代码:
import java.util.Scanner;


public class moon {

    /**
     *
@param args
     
*/
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        // TODO Auto-generated method stub
        System.out.println("请输入数字:(0退出)");
        double a=0;
        
        double sum = 0;
        double avg;
        int num=0;
        
        
        while(a!=0){
            System.out.println("请输入数字:(0退出)");
            a=input.nextDouble();
            
            sum=sum+a;
            num++;   
        }
        
        avg=(double)sum/num;
        System.out.println(num);
        
        System.out.println("总数:"+sum);
        System.out.println("平均数:"+avg);
        
    }

}


这个我输入的是4个5和一个0;
输出是这样的。
请输入数字:(0退出)
5
请输入数字:(0退出)
5
请输入数字:(0退出)
5
请输入数字:(0退出)
5
请输入数字:(0退出)
0
4
总数:15.0
平均数:3.75

还是不对。
----------------解决方案--------------------------------------------------------
  相关解决方案