所以我必须显示低于平均水平的标记,以及高于平均水平的所有标记。
我不知道下一步该怎么做但是到目前为止我的目标是:
public static void main (String[]args) {
int[]marks={50,60,30,90,70,40,80,44};
int average=average(marks);
int[]resultBelowAverage=getBelowAverage(marks,average);
printIntArray(resultBelowAverage);
int[]resultAverageandAbove=getAverageandAbove(marks,average);
printIntArray(resultAverageandAbove);
}
下一个方法用于计算平均值。我得到了这个58的正确答案。
public static int average(int[] marks) {
int i=0;
int total=0;
for(i=0;i<marks.length;i++){
total=total+marks[i];
}
int average=total/i;
return average;
}
下一个方法可以获得数组中低于平均值的值。
public static int countBelowAverage (int[] numbers,int av){
int size=0;
for(int i=0;i<numbers.length;i++) {
if (numbers[i]<av) {
size=size+1;
}
}
return size;
}
下一个方法获取数组中的平均值。
public static int countAboveAverage (int[] numbers,int av) {
int size=0;
for(int i=0;i>=numbers.length;i++) {
if (numbers[i]>=av) {
size=size+1;
}
}
return size;
}
下一个方法获取数组中的哪些值低于平均值。我想这就是我出错的地方。
public static int[] getBelowAverage(int[]numbers,int av) {
int size=countBelowAverage(numbers,av);
int[]belowAverage=new int[size];
return belowAverage;
}
下一个方法获取数组中的哪些值高于平均值。
public static int[] getAverageandAbove(int[] numbers,int av) {
int size=countAboveAverage(numbers,av);
int[]AboveAverage=new int[size];
return AboveAverage;
}
最后一种方法打印分类为低于平均值且高于平均值的数组。
public static void printIntArray(int[]x) {
for(int i=0;i<x.length;i++){
System.out.println (x[i]);
}
}
答案 0 :(得分:0)
在您的方法中,您只需创建适当大小的数组,空数组并返回它们。在返回
之前,您应该为这些数组添加一些低于/高于平均值的标记喜欢这里:
int[]belowAverage=new int[size];
//you have an empty array just after creation with nothing inside
//enter here marks from the marks array that are below average
return belowAverage;
这里的情况完全相同:
int[]AboveAverage=new int[size];
//you have an empty array just after creation with nothing inside
//enter here marks from the marks array that are above average
return AboveAverage;
您可以使用peeskillet的solution算法来执行此操作。
答案 1 :(得分:0)
尝试这样的方法来获得低于平均值的数组
public static int[] getBelowAverage(int[]numbers,int av){
int size=countBelowAverage(numbers,av);
int[]belowAverage=new int[size];
int j = 0;
for (int i = 0; i < numbers.length; i++){
if (numbers[i] < av){
belowAverage[j] = numbers[i];
j++;
}
}
return belowAverage;
}
对上述平均方法做类似的
答案 2 :(得分:0)
在你的方法getAverageandAbove你创建一个数组,但你不在其中放任何东西。 你应该再次循环遍历数字数组,并使用大于平均值的值填充你的AboveAverage数组。