java - For 循环产生部分正确的结果

标签 java for-loop

这是我的代码,我正在尝试计算波浪的面积:

public class coefficient {
public static void main (String[] args) {

    double f[] = {14.0,18.7,9,4.1,6.7,6,6.3,8.4,4,2.9};
    double T = 10;      
    double area = 0;
    int n = 5;

    double w = 2 * Math.PI / T;

    for (int i = 1; i <= n; i++) {

        System.out.println("n = " + i);

            for (int t = 0; t < f.length; t++) {
                System.out.println("T = " + t + " .......... " + f[t] * Math.cos(i*(w * t)));
                area += f[t] * Math.cos(i*(w * t));
            }

        System.out.printf("\nTotal Area: \t\t%.2f\n", area);
        System.out.printf("Calculated area: \t%.2f\n\n", (2/T)*area);

    }

}

}

所以我的输出是正确的,除了我的总面积和计算面积,当 i=1 时它们是正确的,但之后它们没有给我正确的答案。

事情是这样的 - 当我手动输入“i”时:

area += f[t] * Math.cos(1*(w * t)); OR
area += f[t] * Math.cos(2*(w * t));

我找到了正确的区域!所以我认为我的 for 循环有问题,但我不确定是什么......

所以当 i = 1 时,我的面积输出 = 15.11。那是对的。现在,当我的循环中 i = 2 时,我应该得到 10.06,但我得到的是 25.17。当我手动更改 i 时,我得到了正确的答案,因此 i 没有在该行中定义。但它在它上面的行中。

最佳答案

也许是因为每次迭代后您没有将区域设置回 0。将 Area 声明移至 for 循环中,看看是否有效。

double f[] = {14.0,18.7,9,4.1,6.7,6,6.3,8.4,4,2.9};
double T = 10;
int n = 5;

double w = 2 * Math.PI / T;

for (int i = 1; i <= n; i++) {      
    double area = 0;

    System.out.println("n = " + i);

    for (int t = 0; t < f.length; t++) {
        System.out.println("T = " + t + " .......... " + f[t] * Math.cos(i*(w * t)));
        area += f[t] * Math.cos(i*(w * t));
    }

    System.out.printf("\nTotal Area: \t\t%.2f\n", area);
    System.out.printf("Calculated area: \t%.2f\n\n", (2/T)*area);

}

关于java - For 循环产生部分正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47662578/

相关文章:

java - 有没有办法让不同的 RequestBodies 的不同方法具有相同的映射? (补丁请求)

java - 如何将拍摄的图像放在特定的 ImageView 中

Java:为什么结果是5而不是10?

ios - RxSwift for 循环中对同一个 Observable 的多个订阅

java - 安卓:我是新手。我在 java 文件中声明了一个按钮,但在 xml 文件和模拟器上没有看到它

java - 如何将 Integer[] 转换为 int[]?

javascript - 在 for 循环中逐步运行函数

c++ - 二维数组中的用户输入 (C++)

excel - 循环遍历整个工作簿并删除具有 #N/A 的行

python - 我如何将变量 names_and_ranks 分配给列表,每个元素等于城市名称及其对应的排名?