整数不为0的整数的平均值作为数
我试图找到数字的数组的平均值,其值取自JTextfield
。我的问题是零与平均值计算在一起。如何找到平均值但不包含零。整数不为0的整数的平均值作为数
int[] numbers = new int[]{Integer.parseInt(math1.getText()),0 };
int sum =0;
if(numbers != 0){
for(int i=0; i < numbers.length ; i++)
sum = sum + numbers[i];
//calculate average value
int average = sum/numbers.length;
totdata2.setText(Integer.toString(average));
}
不要指望计算平均值时分母其数值为零的数字:
int tally = 0;
for (int i = 0; i < numbers.length; i++){
if (numbers[i] != 0){
sum = sum + numbers[i];
tally++;
}
}
int average = sum/tally;
我不知道你要完成的任务用下面的语法:
if(numbers != 0)
非常感谢,这已经解决了问题 – Craig 2015-04-02 21:12:51
int[] numbers // numbers is an array.
您不能做if(numbers != 0)
。
在for循环中,您应该检查实际整数是否为零。
int counter=0; // counts not zero elements
for(int i=0; i < numbers.length ; i++)
if(numbers[i]!=0){
sum = sum + numbers[i]; // numbers[i] is an int (a number)
counter ++;
}
二:你不应该这样做: int average = sum/numbers.length;
在上面的代码,你指望你除以阵列原始长度的零。
你应该保持一个不为零的计数器并且用该计数器除。 检查上面更新的代码。
它应该是:
int average = sum/counter;
我认为它会工作
int countOfZero = 0 ;
for(int i=0; i < numbers.length ; i++)
{
sum = sum + numbers[i];
if(numbers[i]==0)
{
countOfZero++;
}
}
int average = sum/(numbers.length-countOfZero);
请在发布答案前确认。 – 2015-04-02 21:19:42
只是我想要礼貌.. http://goo.gl/Z0B4Uf – 2015-04-11 12:17:52
0的重要性..如果有人给你0/10,你想包括它! – christopher 2015-04-02 20:59:54
使用“if”使您的代码有条件。 – 2015-04-02 21:07:59