【发布时间】:2018-08-18 23:34:25
【问题描述】:
import java.util.Scanner;
public class Exercise1{
public static void main(String args[]){
int i=1,mark,totalmarks=0,highestmark=0;
Scanner input = new Scanner(System.in);
do{
System.out.print("Please enter the mark of student " + i + ":");
mark = input.nextInt();
while(mark<0 || mark>100)
{
System.out.print("Invaild! Please enter the mark of student " + i + ":");
mark = input.nextInt();
}
if(mark>highestmark)
highestmark = mark;
totalmarks += mark;
System.out.println("\n");
i++;
}while(i<=5);
System.out.println("\n\nHighest mark was: " + highestmark +
"\nAverage mark was: " + String.format("%.0f",totalmarks/5f));
}
}
在 5 名学生的考试成绩中,确定获得的最高分数以及最接近的整数的平均分数。这些标记都应该是 0 到 100 范围内的数学整数(整数)。
上面那一段就是这段代码的对象。 我想知道这段代码在逻辑上很奇怪。
如果(标记>最高标记) 最高标记 = 标记; 当我看到这段代码时,我以为所有的数字都可以是 1,2,3 到 100 这样的标记 但最高标记最初被初始化为 0。 怎么合乎逻辑?
最后一个语句是 (totalmarks/5f) 为什么我要在 5 的末尾添加“f”? 如果我不添加 f,则会输出错误 请为我回答并解释这些问题,感谢您的帮助
【问题讨论】:
-
请在每个帖子中提出 一个 问题 - 并花更多时间来解释自己。你说没有
f“错误输出”但你没有说那个错误是什么,你关于highestmark的问题对我来说也很不清楚。 -
您似乎从某个地方复制了这个程序,现在您不理解它。要学习编程,最好自己解决练习题。
-
'highestmark` 被初始化为可能的最低值。任何高于
highestmark的标记都将上升if(mark>highestmark) highestmark = mark;