不将 0 算作数字的整数的平均值

Average of integers not counting 0 as a number

我正在尝试计算一组数字的平均值,其值取自 JTextfield。我的问题是零被计入平均值。怎么可能找到平均值而不包括零。

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[] 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 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)

我认为它会起作用

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);