行为不确定的双重数据类型

时间:2018-09-04 17:19:28

标签: turbo-c

即使我知道Turbo C现在已经完全过时,我的教练也已经在其中编写了条件。 我遇到一个问题,当我尝试将双精度值传递给函数时,它的行为不正确。我几次都在波动输出,有时甚至很奇怪。我们先来看一下我的代码:

#include<stdio.h>
#include<conio.h>

double func(double input) {
    return input * input;
}

double simpson1By3(double initial, double final, double parts) {
    double sum = 0;
    double h = (final - initial) / parts;
    double oddSum = 0, evenSum = 0;
    int i;
    printf("%f %f %f\n", initial, final, parts);
    printf("%f\n", h);
    printf("%f %f\n", evenSum, oddSum);
    sum += func(initial) + func(final);
    printf("%f %f\n", evenSum, oddSum);
    for (i = 1; i < parts; i = i + 2) {
        oddSum += func(initial + (i * h));
    }
    for (i = 2; i < parts; i = i + 2) {
        evenSum += func(initial + (i * h));
    }
    oddSum *= 4;
    evenSum *= 2;
    printf("%f %f\n", evenSum, oddSum);
    sum += evenSum + oddSum;
    sum *= h / 3;
    return sum;
}

int main() {
    clrscr();
    printf ("%f", simpson1By3(0, 6, 6));
    getch();
    return 0;
}

样本输出: enter image description here

我在那里做错了什么?为什么那里传递的参数和那里的其他变量被错误地打印?为什么-0打印?请帮忙。我曾尝试在论坛中找到类似的内容,但完全失败了。请帮忙。

enter image description here

enter image description here

enter image description here

0 个答案:

没有答案