【发布时间】:2015-03-08 09:23:40
【问题描述】:
我的项目是要找出学生成绩和他们的成绩的平均值、最小值和最大值,但它一直在输出中显示错误。
以下是姓名和等级:
学生:
Alia Nahid Eiman Suad Lamia Salma Mai Wedad Haya Sanaa
测验:
10 20 50 70 80 50 30 90 60 40
期中考试:
30 80 100 40 80 70 70 80 50 30
期末考试:
40 80 70 100 90 60 70 50 40 80
这里是 Java 代码:
package java_final_project;
import java.util.*;
public class Java_Final_Project {
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
// Declare inputs:
String letter1, letter2, letter3;
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
// Declare the four array structures
int[] quiz = new int[10];
int[] midterm = new int[10];
int[] finalexam = new int[10];
String[] students = new String[10];
// Input elements to the arrays
int counter, sum1 = 0;
int sum2 = 0;
int sum3 = 0;
double ave1, ave2, ave3;
int max1, max2, max3;
int min1, min2, min3;
for (counter = 0; counter < 10; counter++) {
System.out.println ("Enter student names and grades of quiz, midterm "
+ "and final with space between them");
students[counter] = console.next();
quiz[counter] = console.nextInt();
sum1 = sum1 + quiz[counter];
midterm[counter]= console.nextInt();
sum2 = sum2 + midterm[counter];
finalexam[counter]= console.nextInt();
sum3 = sum3 + finalexam[counter];
}
ave1 = sum1 / 10;
ave2 = sum2 / 10;
ave3 = sum3 / 10;
// min and max values
max1 = Math.max(quiz[counter], max);
max2 = Math.max(midterm[counter], max);
max3 = Math.max(finalexam[counter], max);
min1 = Math.min(quiz[counter], min);
min2 = Math.min(midterm[counter], min);
min3 = Math.min(finalexam[counter], min);
// if statement for the standing
// ave1
if (ave1 >= 90 && ave1 <= 100) {
letter1 = "E";
} else if (ave1 >= 70 && ave1 <= 80) {
letter1 = "G";
} else if (ave1 >= 50 && ave1 <= 60) {
letter1 = "S";
} else {
letter1 = "P";
}
// ave2
if (ave2 >= 90 && ave2 <= 100) {
letter2 = "E";
} else if (ave2 >= 70 && ave2 <= 80) {
letter2 = "G";
} else if (ave2 >= 50 && ave2 <= 60) {
letter2 = "S";
} else {
letter2 = "P";
}
//ave3
if (ave3 >= 90 && ave3 <= 100) {
letter3 = "E";
} else if (ave3 >= 70 && ave3 <= 80) {
letter3 = "G";
} else if (ave3 >= 50 && ave3 <= 60) {
letter3 = "S";
} else {
letter3 = "P";
}
// Display the elements of the four arrays
System.out.println("Here is the elements of the four arrays");
System.out.println("students" + "\t" + "quiz" + "\t" + "midterm" + "\t" + "finalexam");
for (counter = 0; counter < 10; counter++) {
System.out.println(students[counter] + "\t" + quiz[counter] + "\t" + midterm[counter] + "\t" + finalexam[counter]);
}
System.out.println("Summary Report:");
System.out.println();
System.out.println("students" + "\t" + "\t" + "Quiz" + "\t" + "\t" + "Midterm" + "\t" + "\t" + "FinalExam");
System.out.println();
System.out.println("Average" + "\t" + "\t" + ave1 + "\t" + "\t" + ave2 + "\t" + "\t" + ave3);
System.out.println();
System.out.println("Max" + "\t" + "\t" + max1 + "\t" + "\t" + max2 + "\t" + "\t" + max3);
System.out.println();
System.out.println("Min" + "\t" + "\t" + min1 + "\t" + "\t" + min2 + "\t" + "\t" + min3);
System.out.println();
System.out.println("Standing" + "\t" + "\t" + letter1 + "\t" + "\t" + letter2 + "\t" + "\t" + letter3);
}
}
【问题讨论】:
-
如果您不告诉我们错误是什么,很难帮助您找到它。
-
试试这个。将 max1、max2 和 max3 初始化为整数值。然后: max1 = Math.max(quiz[counter], max1); max2 = Math.max(midterm[counter], max2); max3 = Math.max(finalexam[counter], max3);
-
你应该把它转换成 double ave1 = sum1/10; ave2 = sum2/10; ave3 = sum3/10;
-
你所说的“站立”的东西似乎是以一种非常奇怪的方式计算出来的。这实际上应该是什么意思?
-
它告诉我他们是 max1 、 2 和 3 @DavidWallace 的错误
标签: java arrays max average min