我正在尝试编写一个程序来计算运行者的预设条目并找出谁是最快的。它应该将时间列出为
苏西329
菲尔445
每个都有相同的间距,但我的总是像上面打印的那样出现。
我也无法将最终结果的时间分解为分钟和小时。
我的问题是:如何使每个输出时间的输出间距相同,无论名称有多长,以及如何将最终时间分为分钟和小时?
如果您给出答案,您能否解释一下每个步骤的工作原理并展示代码的外观?
这是我迄今为止所拥有的:
final int numRunners = 16;
String[] names = { "Elena", "Thomas", "Hamilton", "Suzie",
"Phil", "Matt", "Alex", "Emma", "John", "James",
"Jane", "Emily", "Daniel", "Neda", "Aaron", "Kate" };
int[] times = { 341, 273, 278, 329, 445, 402, 388,
275, 243, 334, 412, 393, 299, 343, 317, 265 };
for (int i = 0; i < names.length; i++) {
System.out.println(names[i] + ": " + times[i]);
}
fastestRunners(names, times);
}
public static void fastestRunners(String [] names, int [] values){
int i;
int fastest = 0;
for (i = 0; i < values.length - 1; i++){
if ( values [i] < values[i + 1]){
fastest = i;
}
else {
fastest = i + 1;
}
}
System.out.println("The fastest runner is " + names[fastest] + " whose time in minutes is " + values[fastest]);
}
}
最佳答案
您缺席了部分类(class)。这永远不会编译。无论如何,我将主循环编写如下:
int fastest = 0;
for (int i = 1; i < values.length; i++) {
if ( values [i] > values[fastest]) {
fastest = i;
}
}
因为你现在拥有的将不起作用。至于分钟和小时,您可以按如下方式计算:
final String name = "Phil";
final int value = 341;
final int hours = value / 60;
final int minutes = value % 60; // modulo
System.out.printf("%-20s: %dh%02dm%n", name, hours, minutes);
关于java - 输出间隔并将数字分解为小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49459952/