gpt4 book ai didi

java - 使用方法打印数组中的最低值和第二低值 (Java)

转载 作者:行者123 更新时间:2023-12-01 09:20:28 26 4
gpt4 key购买 nike

我是 Java 新手,接到的作业要求:

描述

一群 friend 决定参加波士顿马拉松。他们的姓名和时间(以分钟为单位)如下:

Name       Time(minutes)

Elena       341
Thomas      273
Hamilton    278
Suzie       329
Phil       445
Matt       402
Alex       388
Emma       275
John       243
James       334
Jane       412
Emily       393
Daniel     299
Neda       343
Aaron       317
Kate       265

找到跑得最快的人。打印姓名和他/她的时间(以分钟为单位)。

找到第二快的运行者。打印姓名和他/她的时间(以分钟为单位)。

说明

编写一个方法,该方法将整数数组作为输入并返回与该数组对应的索引时间最少的人。对时间数组运行此方法。打印出姓名和时间对应返回的索引。编写第二种方法来找到第二好的运行者。第二种方法应该使用第一种方法确定最佳运行者,然后循环遍历所有值以找到第二最佳(第二低)时间。这是一个开始的程序框架:

class Marathon {
public static void main (String[] arguments){
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
};
int i1 = fastestIndex(times);
int i2 = secondFastestIndex(times);
//
// your output based on the index i1 and i2
//
}
// your two Java methods:
// fastestIndex() and secondFastestIndex()
}

我编写了一个程序,可以打印第一名和第二名的时间和名称,但现在我开始认为我没有正确遵循说明。谁能帮我弄清楚我应该采取哪些不同的做法?

这是我的业余代码:

public class Lab
{
public static void main(String[] args)
{
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
};

int firstplace = times[0];
String firstname = names[0];

int secondplace = times[0];
String secondname = names[0];

for (int counter = 0; counter < times.length; counter++)
{
if (times[counter] < firstplace) {
firstplace = times[counter];
firstname = names[counter]; }
}

for (int counter = 0; counter < times.length; counter++)
{
if (times[counter] > firstplace)
if (times[counter] < secondplace) {
secondplace = times[counter];
secondname = names[counter]; }
}
System.out.printf("The fastest runner is: %s (%d Minutes)%n", firstname, firstplace);
System.out.printf("The second fastest runner is: %s (%d Minutes)%n", secondname, secondplace);
} // end main
} // end class Lab

这就是它打印的内容:

The fastest runner is: John (243 Minutes)
The second fastest runner is: Kate (265 Minutes)

最佳答案

由于这是一项作业,我无法告诉您确切的代码,但您可以执行以下操作。更好的主意是将您的代码分解为执行特定任务的函数,这就是您的起始代码所说的。您需要编写两个函数fastestIndex 和secondFastestIndex。 FastestIndex 是应该返回最快索引的函数,而 SecondFastestIndex 应该返回第二快索引,因此只需构建代码,以便执行 FastestIndex 任务的代码位于相应的方法中(您可以通过移动当前片段来完成此操作)新方法的代码)和 secondaryFastestIndex 相同,然后从 main 方法调用它们。这是我能解释的最好的。基本骨架应该是这样的:

void main() {
// do some task;
// call fastestIndex;
// call secondFastestIndex;
}

int fastestIndex() {
// code
int firstplace = times[0];
String firstname = names[0];
for (int counter = 0; counter < times.length; counter++)
{
if (times[counter] < firstplace) {
firstplace = times[counter];
firstname = names[counter]; }
}
// return stuff
}

//Same for secondFastestIndex

只要尝试重新构建代码(如框架)就可以了。 还要确保从 SecondFastestIndex 调用fastestIndex 以避免冗余并完全遵循说明。

关于java - 使用方法打印数组中的最低值和第二低值 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com