In the method below trying to calculate average age in each category('o','u','n'). Ages are stored in a separate class.

Code:

public double averageAge() // calculating average age in each BMI group
{
double numbers[]=new double[this.list.length];
double result=0;
char[] cat={'O','U','N'};
for (int i=0;i<this.list.length;i++){
int b=this.list[i].age;
for(int j=0;j<3;j++){//loop runs three times, as there are three categories
if(b==cat){
result=result+b;
numbers[j]++;}
}
}       for (int j=0;j<3;j++)
System.out.println("Average age in group "+cat[j]+ " is "+result/this.list.length);
return result;
}

Result returns 0.. Any ideas how this can be fixed?

public double averageAge() // calculating average age in each BMI group
{
double numbers[] = new double[this.list.length];
// KASH: You probably need an array to store
// totals as well. One total per "cat".
double result = 0;
char[] cat = {'O', 'U', 'N'};

for (int i = 0;i < this.list.length;i++) {
int b = this.list[i].age;
for (int j = 0;j < 3;j++) {//loop runs three times, as there are three categories
// KASH: should index into cat using loop var "j"
if (b == cat) {
// KASH: SHould be "result[j] += b;"
result = result + b;
numbers[j]++;
}
}
}

for (int j = 0;j < 3;j++)
System.out.println ("Average age in group " + cat[j] + " is " + result / this.list.length);

return result;
}