Java 数组的平均值并与名称关联
有人知道如何在这个简单的程序中显示参与者的平均比赛时间吗? 显示与时间相关的跑步者姓名也很好。 我认为我有正确的数组结构,并且已经接受了用户输入。 谢谢你能提供的任何帮助。这是我的密码Java 数组的平均值并与名称关联,java,arrays,average,Java,Arrays,Average,有人知道如何在这个简单的程序中显示参与者的平均比赛时间吗? 显示与时间相关的跑步者姓名也很好。 我认为我有正确的数组结构,并且已经接受了用户输入。 谢谢你能提供的任何帮助。这是我的密码 import java.util.Scanner; public class RunningProg { public static void main (String[] args) { int num; Scanner input= new Scanner (System
import java.util.Scanner;
public class RunningProg
{
public static void main (String[] args)
{
int num;
Scanner input= new Scanner (System.in);
System.out.println("Welcome to Running Statistical Analysis Application");
System.out.println("******************************************************************* \n");
System.out.println("Please input number of participants (2 to 10)");
num=input.nextInt();
// If the user enters an invalid number... display error message...
while(num<2|| num >10)
{
System.out.println("Error invalid input! Try again! \nPlease input a valid number of participants (2-10)...");
num=input.nextInt();
}
// declare arrays
double resultArray [] = new double [num]; // create result array with new operator
String nameArray [] = new String [num];// create name array with new operator
// Using the num int will ensure that the array holds the number of elements inputed by user
// loop to take in user input for both arrays (name and result)
for (int i = 0 ; i < nameArray.length ; i++)
{
System.out.println ("Please enter a race participant Name for runner " + (i+1) );
nameArray[i] = input.next();
System.out.println ("Please enter a race result (time between 0.00 and 10.00) for runner " + (i+1) );
resultArray[i] = input.nextDouble();
}
这似乎是一个家庭作业问题,下面是如何用伪代码解决问题: 参赛者的总平均比赛时间是通过将所有成绩相加并除以成绩数量计算得出的:
sum = 0
for i = 0 to results.length // sum up all the results in a loop
sum = sum + results[i]
average = sum / results.length // divide the sum by the amount of results to get the average
在读取用户输入并存储运行者的名称和结果时执行求和会更好。原因是这样做效率更高,不需要第二个循环来执行求和,代码也会更干净,因为这样做的代码会更少
可以通过迭代两个数组来显示跑步者的时间,这两个数组保存名称和结果,并在相应的索引处打印值:
for i = 0 to results.length
print "Runner: " + names[i] + " Time: " + results[i]
这是因为您拥有相同数量的结果和名称results.length==names.length,否则最终会出现异常
另一种方法是使用Java的面向对象特性,创建一个名为Runner的对象:
然后使用数组存储以下跑步者:
Runner[] runners = new Runner[num];
for (int i = 0 ; i < num ; i++) {
System.out.println ("Please enter a race participant Name for runner " + (i+1) );
String name = input.next();
System.out.println ("Please enter a race result (time between 0.00 and 10.00) for runner " + (i+1) );
double result = input.nextDouble();
runners[i] = new Runner(name, result);
}
不知道你在问什么。你是在问,求一组数字的平均值的数学是什么?或者如何在Java中将数字相加?或者如何在Java中划分数字?我知道它背后的数学原理,但我正在努力学习Java语法,尽管我有一个例子可以作为基础。好吧,首先需要的是某种变量来存储到目前为止输入的运行总次数。在循环开始之前,您需要声明并将其设置为零。然后,当用户输入每个数字时,您需要将其添加到运行总数中。你为什么不试试呢;然后,当你陷入困境时,通过将代码附加到问题中,向我们展示你尝试过的代码;然后我们可以帮助你跨过下一个障碍。嗨,大卫。谢谢你的帮助和鼓励!我认为名为num的变量存储程序开始时用户输入的参与者数量。为清楚起见,这仅基于一个raceSure,但除了num之外,您还需要一个总时间的变量。可能float或double类型的变量比较合适。然后当用户输入时间时,你会将它们添加到变量中。我给了你两个问题的答案,但你已经有了这些信息吗?那你为什么在这里问问题将这个伪代码翻译成Java语法非常简单没有问题,如果您需要进一步的帮助,请告诉我
Runner[] runners = new Runner[num];
for (int i = 0 ; i < num ; i++) {
System.out.println ("Please enter a race participant Name for runner " + (i+1) );
String name = input.next();
System.out.println ("Please enter a race result (time between 0.00 and 10.00) for runner " + (i+1) );
double result = input.nextDouble();
runners[i] = new Runner(name, result);
}
for i = 0 to runners.length
print runners[i].name + " " + runners[i].result