在java中计算数组的平均变化时遇到问题
因此,我必须编写一个代码,允许用户计算他们每周运行的平均里程变化,但我有一些问题,希望得到一些指导。该程序基本上允许用户输入他们有多少周的数据以及运行英里数的所有相应值,并将这些值存储在一个数组中。我认为我真的很接近,但无论出于什么原因,当我试图计算数组中所有值的差值之和时,它只存储数组中前两个值之间的差值,而不存储其余值,因此给出了错误的结果。这部分代码尤其是我遇到的问题:在java中计算数组的平均变化时遇到问题,java,arrays,Java,Arrays,因此,我必须编写一个代码,允许用户计算他们每周运行的平均里程变化,但我有一些问题,希望得到一些指导。该程序基本上允许用户输入他们有多少周的数据以及运行英里数的所有相应值,并将这些值存储在一个数组中。我认为我真的很接近,但无论出于什么原因,当我试图计算数组中所有值的差值之和时,它只存储数组中前两个值之间的差值,而不存储其余值,因此给出了错误的结果。这部分代码尤其是我遇到的问题: sumOfDifferences += (y[i+1] - y[i]); average = (sumOfDiffer
sumOfDifferences += (y[i+1] - y[i]);
average = (sumOfDifferences) / (weeksData - 1);
这是我到目前为止所拥有的。我很感激能得到的任何帮助
import java.util.Scanner;
public class RunAnalyzer
{
public static void main(String[]args)
{
Scanner input = new Scanner(System.in);
System.out.print("\n How many weeks of data do you have? ");
int weeksData = input.nextInt();
double [] y = new double [weeksData]; double average = 0; double sumOfDifferences = 0;
for (int i = 0; i < y.length; i++)
{
System.out.print("\nEnter miles run for week " + (i + 1) + ": ");
y[i] = input.nextDouble();
}
for (int i = 0; i < y.length; i++)
{
sumOfDifferences += (y[i+1] - y[i]);
average = (sumOfDifferences) / (weeksData - 1);
if (y[i+1] <= y[i])
{
System.out.print("\n You're weekly mileage is NOT increasing!");
break;
}
else
{
System.out.println("Your weekly mileage is increasing!");
break;
}
}
System.out.print("\nAverage weekly mileage change: " + average);
}
}
import java.util.Scanner;
公共类运行分析器
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
System.out.print(“\n您有多少周的数据?”);
int weeksData=input.nextInt();
double[]y=新的双[周数据];双平均值=0;双差异总和=0;
对于(int i=0;i if(y[i+1]问题在于,在第一次迭代中,您将中断
(您的if
和else
中有一个中断,因此无论它采用哪条路径,它都将中断):
Java对于Javascript就像痛苦对于绘画,Ham对于Hampster一样。它们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言名称。当你发布问题时,请适当地标记它。在任何情况下,在第一次迭代中,你都可以打破循环。
for (int i = 0; i < y.length; i++)
{
sumOfDifferences += (y[i+1] - y[i]);
average = (sumOfDifferences) / (weeksData - 1);
if (y[i+1] <= y[i]) {
System.out.print("\n You're weekly mileage is NOT increasing!");
break;
} else {
System.out.println("Your weekly mileage is increasing!");
break;
}
}
for (int i = 0; i < y.length-1; i++)
{
sumOfDifferences += (y[i+1] - y[i]);
average = (sumOfDifferences) / (weeksData - 1);
if (y[i+1] <= y[i]) {
System.out.print("\n You're weekly mileage is NOT increasing!");
} else {
System.out.println("Your weekly mileage is increasing!");
}
}