【发布时间】:2016-06-18 08:09:03
【问题描述】:
无法正确打印中位数、平均值和众数。所需要的只是一些编码的移动和一些数字/单词的更改!
程序:
public static int StudentAverage(int [] array)
//almost there, some random big code is in front of the wording?
{
int avg;
int sum=0;
for(int i=0;i<4;i++){
sum=sum+array[i];
}
avg=sum/4;
System.out.println("The average is: " +avg);
return avg;
}
public static int median(int [] array) {
//i think this is way off also
int size = 0;
int[] grades = new int [size];
for(int i=0;i<size;i++){
grades[i]=0;
}
int i;
for( i=0;i<size;++i){
int count=0;
for (int j=0;j<size;++j){
if(grades[i]>grades[j]){
count++;
}
}
if(count==grades.length/4){
break;
}
System.out.print("The median is: "+grades[i]);
}
return grades[i];
}
public static int mode(int [] array) {
int maxValue = 0, maxCount = 0;
for (int i = 0; i < array.length; ++i) {
int count = 0;
for (int j = 0; j < array.length; ++j) {
if (array[j] == array[i]) ++count;
}
if (count > maxCount) {
maxCount = count;
maxValue = array[i];
}
}
return maxValue;
客户:
public class StudentGradesClient {
public static void main(String [] args){
int [] grades = new int [4];
Random rand = new Random();
for (int i = 0; i < grades.length; i++)
{
grades[i] = rand.nextInt(100) + 1;
}
StudentGrades.AscendingSort(grades);
System.out.println ("Student Grades");
for (int i = 0; i<grades.length; i++)
System.out.print(grades[i] + "\t");
System.out.println();
StudentGrades.Highest(grades);
for (int i = 1; i < grades.length; i++)
System.out.print(grades[i]);
StudentGrades.StudentAverage(grades);
for (int i = 0; i<grades.length; i++)
//some random big number keep popping up before
System.out.println();
//not printing at all
StudentGrades.median(grades);
for (int i = 0; i<grades.length; i++)
System.out.println();
}
}
结果:
Student Grades
6 23 49 65
The highest grade is: 65
234965The average is: 35
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at studentgrades.StudentGrades.median(StudentGrades.java:66)
at studentgrades.StudentGradesClient.main(StudentGradesClient.java:32)
C:\Users\Marc\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
编辑
我快到了!提示非常有帮助!现在,我很难完成中位数和众数,而且在我的平均打印之前一直显示大量数字。
如果有人可以发布提示等 - 我不要求直接回答。我正在从共享的帮助/提示中学习,所以谢谢!在某些部分仍然有点困惑,非常感谢 - 再次感谢您!
【问题讨论】:
-
错误是什么?越界? NPE?从 1 开始的 for 循环可能是
-
发布家庭作业问题的一些技巧:首先,它们非常受欢迎,而且你不要求别人为你做这件事很好。然而,如果你从你的教育工作者那里明显地复制+粘贴的材料而没有明确声明它是家庭作业,它会引起怀疑——可能是不公平的。所以,介绍它,说出你在做什么,并使用引用块。您已经展示了程序和客户端代码,但我们不知道这是否是您的工作 - 如果这是您的工作,那么给它一些上下文是非常有帮助的,例如“这是我尝试过的”。
-
另外,请保持标题简洁和有意义 - “需要一些帮助”是相当含蓄的,不需要进入。谢谢,祝你好运!
-
哦,哎呀-你说得对。这绝对是我的作品,但没想到要给你提到的所有东西贴上标签。我一定会记住这一点的。