不将 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);
我正在尝试计算一组数字的平均值,其值取自 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);