输出任意数求平均,如果是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);
}
}
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);
}
}
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
还是不对。
----------------解决方案--------------------------------------------------------