Несмотря на то, что я знаю, что 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](https://i.stack.imgur.com/lPkye.png)
Что я там не так делаю? Почему переданные там аргументы ошибочно печатаются вместе с другими переменными и почему это -0 печатается? Пожалуйста помоги. Я пытался найти что-то похожее на форумах, но потерпел неудачу. Пожалуйста, помогите.
![enter image description here](https://i.stack.imgur.com/wUpj5.png)
![enter image description here](https://i.stack.imgur.com/8HHu0.png)
![enter image description here](https://i.stack.imgur.com/LDu8D.png)