- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
3天前关闭。
Improve this question
我需要这个java程序的帮助。任务是写一个程序,接收n个航班公司,然后直到命令"完成"接收每个公司的乘客。在程序结束时,结果应该是每个公司的名称和该公司的平均乘客人数。还有,必须打印乘客最多的公司的名称。我想出了如何打印每个公司的名称和每个航班的平均乘客人数,但最后,我不知道如何打印乘客最多的公司名称。在我的情况下,乘客最多的公司名称是最后一个整数,而不是公司名称。
这是密码:
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
String companyName = "";
int sum = 0;
int counter = 0;
String topCompany = "";
int mostPeople = 0;
for (int i = 0; i < n; i++) {
int maxNumber = 0;
String input = scanner.nextLine();
companyName = input;
char symbol = companyName.charAt(0);
boolean isSymbol = false;
if (symbol>=65 && symbol<=90){
isSymbol = true;
}
if (isSymbol){
topCompany = companyName;
}
while (!input.equals("Finish")) {
if (sum > maxNumber) {
maxNumber = sum / counter;
mostPeople = maxNumber;
}
input = scanner.nextLine();
if (input.equals("Finish")) {
break;
}
int people = Integer.parseInt(input);
counter++;
sum += people;
}
System.out.println(companyName);
System.out.println(sum / counter);
counter = 0;
sum = 0;
}
System.out.printf("%s has most passengers per flight: %d", topCompany, mostPeople);
1条答案
按热度按时间mlmc2os51#
我发现你总是把变量
topCompany
赋给最新的公司,我想你可以在开始的时候用一个max变量来解决这个问题,比如int topCompanyByNrOfPasagers=0
。然后比较每个公司的
sum
,就在while循环之后:另外,我建议您更详细地命名变量,例如:
maxNumber
-〉更像是maxAveragePerCompany
和mostPeople
-〉mostAverageOfPeople
,我花了一点时间才弄明白它们是什么。另外,如果你在循环开始的时候重置你的计数器,我能推荐它更容易遵循程序吗?
主方法编码应为: