即使我知道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;
}
我在那里做错了什么?为什么那里传递的参数和那里的其他变量被错误地打印?为什么-0打印?请帮忙。我曾尝试在论坛中找到类似的内容,但完全失败了。请帮忙。