| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:输出任意数求平均,如果是0,输出平均值。
只看楼主 加入收藏
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
结帖率:94.74%
收藏
已结贴  问题点数:20 回复次数:11 
输出任意数求平均,如果是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
搜索更多相关主题的帖子: 平均值 输出 
2010-09-09 18:08
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:6 
阿弥陀佛,求平均应该用函数,不要用sum++记录

论坛是我家灌水靠大家
2010-09-09 19:18
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
收藏
得分:0 
不是总数除以个数就可以了吗?
为啥不对呢?

2010-09-09 19:57
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
收藏
得分:0 
总数哪里第一个总是记不上 就是求和的时候没有算第一个。

2010-09-09 20:01
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:6 
以下是引用xingjing314在2010-9-9 20:01:16的发言:

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


因为你根本没有把第一个a加到总和里面去
2010-09-09 20:05
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
收藏
得分:0 
sum=sum+a;这个不是吗?把a加进去?

2010-09-09 20:07
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:0 
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++;   
        }
2010-09-09 20:18
wangjianhui
Rank: 8Rank: 8
来 自:^帅帅城^
等 级:蝙蝠侠
威 望:2
帖 子:353
专家分:745
注 册:2010-3-19
收藏
得分:6 
你这好像是直接加后三个数了  判断第一个是否为0了

加油
2010-09-09 20:23
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
收藏
得分:0 
知道了 谢谢版主!

2010-09-09 20:27
xingjing314
Rank: 2
等 级:论坛游民
帖 子:160
专家分:32
注 册:2007-1-23
收藏
得分: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

还是不对。

2010-09-09 20:48
快速回复:输出任意数求平均,如果是0,输出平均值。
数据加载中...
 
   



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

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