1

我的程序需要一些成绩(来自记事本文件),然后是很多成绩百分比,并将它们保存为字母成绩。然后我打印出多少 A、B 等。我还需要找到最高和最低的成绩。

我想要做的是在我的成绩检查循环结束时,将当前成绩保存到一个变量中,这样我就可以稍后比较所有变量,看看哪个是最高的和最低的。问题是,我不知道要输入多少个分数,所以我需要无限可能的变量。这是代码的相关部分:

  while (scores > 0 && in.hasNextInt()) {
     int grade = in.nextInt();

     if (grade >= 90) {
        A++;
     } else if (grade >= 80) {
        B++;
     } else if (grade >= 70) {
        C++;
     } else if (grade >= 60) {
        D++;
     } else {
        F++;
     }
     scores--;
     scoreTotals = (scoreTotals + grade);
  }  

我想做这样的事情:

    int variableCount = 1;
    int grade(variableCount) = grade;
    variableCount++;

然后继续比较我的循环所做的变量以确定最低和最高。

我已经通过使用变量查找了定义变量,但我没有找到任何东西。我在这里走正确的道路吗?

4

2 回答 2

2

我建议您创建两个变量来存储最高和最低值,并且在您进行此循环时,如果您发现新的更大或更小的变量,请更新它们。

尝试:

int highest = 0;
int lowest = 100;
while (scores > 0 && in.hasNextInt()) {
 int grade = in.nextInt();

 if (grade >= 90) {
    A++;
 } else if (grade >= 80) {
    B++;
 } else if (grade >= 70) {
    C++;
 } else if (grade >= 60) {
    D++;
 } else {
    F++;
 }

 if (grade > highest) {
    highest = grade;
 }
 if (grade < lowest) {
    lowest = grade;
 }
 scores--;
 scoreTotals = (scoreTotals + grade);
}  
于 2013-10-23T18:23:58.273 回答
1

你不需要把它弄得太复杂。

int highest = Integer.MIN_VALUE;
int lowest = Integer.MAX_VALUE;

while (...)
{
    // your existing stuff...

    highest = Math.max(highest, grade);
    lowest = Math.min(lowest, grade);
}

最后,highestlowest是最高和最低的等级。

于 2013-10-23T18:25:01.573 回答