我在计算 double vector 的平均值时遇到问题。这是我的代码:
import java.util.Scanner;
import java.util.Vector;
public class MediaVettore {
public static void main ( String [] args ) {
System.out.println("Insert a sequence of double numbers (the program ends when the input is 0,0):");
@SuppressWarnings("resource")
Scanner input = new Scanner ( System .in );
Vector < Double > v = new Vector < Double >();
double n;
double sum = 0;
double average;
do {
n = input . nextDouble ();
if(!v.isEmpty()) {
for(int i=0; i<=v.size()-1; i++) {
sum += v.get(i);
}
}
average=sum/v.size();
if (n !=0) v. add (n);
} while (n !=0);
System.out.println("Average = " + average);
System.out.println(v.size());
System.out.println(sum);
}
}
总和不正确,我不明白为什么。你能给我一点帮助吗? v.get(i)
应该在正确的位置获得想要的 double ,不是吗?
为需要的人编辑: 对于以下解决方案的每个版本
for(double i : v) {
sum += i;
}
最佳答案
您应该将元素放入与计算平均值不同的循环中的 vector 中。现在你正试图同时做这两件事,这有点困惑。
do {
n = input . nextDouble ();
if (n !=0) v. add (n);
} while (n !=0);
for(int i=0; i<=v.size()-1; i++) {
sum += v.get(i);
}
}
average=sum/v.size();
...尽管您还应该改进代码中的其他一些内容,例如使用 ArrayList
而不是 Vector
,后者已被弃用了几乎20 年,并使用 for-each 循环而不是笨拙的索引 for 循环。
关于java - 在java中计算 double vector 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324244/