gpt4 book ai didi

java - 循环结束后不打印字符串

转载 作者:行者123 更新时间:2023-12-01 13:23:53 25 4
gpt4 key购买 nike

因此,在浏览了此处和其他网站上已经提出的问题后,我想我应该尝试一下。

我正在做一个练习,希望你用 Java 建立一个程序,输入 10 个数字,计算平均值和标准差并输出它们。

我的问题是,当我运行程序,然后输入所需的 10 个值并按 Enter 键时,没有任何反应。由于某种原因,循环后发生的系统打印输出没有被执行。循环内的 println 不是必需的,它只是为了表明循环运行时正在正确计算值,而且确实如此。

我的目标是将 myValues 分配的当前值添加到 sum1,并将 myValues 的平方添加到 sqrdSum。 sqrdSum 只是一个变量,用于对输入值的平方求和,以便程序后面的标准差计算会更清晰。

正如预期的那样,我并不是在寻找为我做的事情,只是关于如何调整我的代码的一些建议,以便在循环执行之后出现 printlns。我希望这与我的逻辑有关,但无法弄清楚。希望这是我错过的简单事情。

谢谢。

到目前为止,我已经使用 for 循环进行了设置:

    int n = 10;
double sum1 = 0.0;
double sqrdSum = 0.0;
double mean1 = sum1 / n;
double std1 = Math.pow((sqrdSum - (Math.pow(sum1, 2) / n)) / (n-1), 0.5);

Scanner input1 = new Scanner(System.in);
System.out.println("Enter 10 numbers: ");
double myValues = input1.nextDouble();

for (int count = 0; count <= n; count++) {
sum1 += myValues;
sqrdSum += Math.pow(myValues, 2);
System.out.println(sum1 + " " + sqrdSum); //this is to test to see if the loop is calculating correctly.
myValues = input1.nextDouble();
}

System.out.print("The mean of your values is: " + mean1);
System.out.print("The standard deviation of your values is: " + std1);


//Test values: 1 2 3 4.5 5.6 6 7 8 9 10
//Should give a mean of 5.61
//std of 2.99794

最佳答案

问题是 input1.nextDouble()阻塞直到输入下一个数字。您正在输入 10 个数字,但您期望输入 11 个数字,因为您有这一行

double myValues = input1.nextDouble();

执行一次并且

myValues = input1.nextDouble(); 

在执行11次的循环内。只需将其移动到循环的开头即可:

Scanner input1 = new Scanner(System.in);
System.out.println("Enter 10 numbers: ");
double myValues = 0;

for (int count = 0; count < n; count++) {
double myValues = input1.nextDouble();
sum1 += myValues;
sqrdSum += Math.pow(myValues, 2);
System.out.println(sum1 + " " + sqrdSum); //this is to test to see if the loop is calculating correctly.
}

正如 Brian 指出的,您还遇到了一个差一错误。从 0 开始数到 10,这样就形成了 11 个循环周期。更改<=<

关于java - 循环结束后不打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21891352/

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