首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

【新人】用数组求平均数时出现的有关问题

2013-02-24 
【新人弱弱的问】用数组求平均数时出现的问题先上代码:import java.util.Scannerpublic class Test01 {//目

【新人弱弱的问】用数组求平均数时出现的问题
先上代码:

import java.util.Scanner;

public class Test01 
{//目标:求出输入的N个double型数字的平均数,以及有几个数字大于这个平均数
public static void main(String[] args)
{
final int NUMBER_OF_ELEMENTS = 10;         //输入数字的个数
double[] number  = new double [NUMBER_OF_ELEMENTS];
double sum = 0;                            //平均数之和

java.util.Scanner input = new java.util.Scanner(System.in);
for(int i = 0; i < NUMBER_OF_ELEMENTS; i ++ )
{
System.out.print("Enter a new number :");
number[i] = input.nextDouble();
sum += number[i];
}

double average = sum / NUMBER_OF_ELEMENTS; //平均数

int count = 0;                             //大于平均数的数字的个数
for(int i = 0; i < NUMBER_OF_ELEMENTS; i ++)
{
if(i > average)
count ++;
}

System.out.print(average);
System.out.print("大于平均数的数有" + count + "个");
}
}

我全用“1”来测试的时候,平均数是1.0,然后大于平均数的数字有8个!……
然后甩“2”来测试,平均数2.0,大于平均数的数字是7个……
3的时候大于平均数6个……
以此类推……直到0个……
为啥会这样?求各位大大解释一小下吧!
新手提问难免白痴些,见谅……
谢谢!
控制台 测试 一维数组
[解决办法]
记得我以前犯过这样的错误!
if( i > average)     这句应该是     if(number[i] > average) 
[解决办法]

引用:
记得我以前犯过这样的错误!
if( i > average)     这句应该是     if(number[i] > average)

楼主太粗心了吧,给你贴上完整的代码,注意代码的可阅读性
public class Test01 {

// 目标:求出输入的N个double型数字的平均数,以及有几个数字大于这个平均数
public static void main(String[] args) {
final int NUMBER_OF_ELEMENTS = 10; // 输入数字的个数
double[] number = new double[NUMBER_OF_ELEMENTS];
double sum = 0; // 平均数之和

java.util.Scanner input = new java.util.Scanner(System.in);
for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
System.out.print("Enter a new number :");
number[i] = input.nextDouble();
sum += number[i];
}

double average = sum / NUMBER_OF_ELEMENTS; // 平均数

int count = 0; // 大于平均数的数字的个数
for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
if (number[i] > average)
count++;
}

System.out.print(average);
System.out.print("大于平均数的数有" + count + "个");
}

}

[解决办法]
for(int i = 0; i < NUMBER_OF_ELEMENTS; i ++)


{
if(i > average)
count ++;
}
同一楼的,感觉如果根据结果的异常来推断错误的原因,就会更快的找出错误。
[解决办法]
我晕 i是0123456789大于1的肯定是8个  大于2的肯定是7个  程序错了
[解决办法]
一楼正解,楼主其实你用loop的时候可以在loop里加入一些检测的输出,这样容易看出问题。

热点排行