Я пытаюсь создать программу, которая находит корень уравнения. Все, что касается моей программы, отлично работает, за исключением самого уравнения: оно возвращает неверные значения (1, бесконечность, 0, ...).Функция не возвращает правильное значение в C
Это функция Я оценка:
double f(x) {
return exp(-x)-sin(M_PI*x/2.);
}
Например, F (0,3) должно быть 0,287, но он возвращает 1.000. Странно, я попробовал тот же самый код на другом компьютере некоторое время назад, и все получилось просто отлично.
Что такое подпись функции? 'double f (x)' плохо сформирован. – Elazar
@ Элазар: С C90 он не плохо сформировался; это определение старого стиля (pre-ANSI) с типом 'x' по умолчанию' int'. Начиная с C99, «неявное правило« int »было отброшено, и это нарушение ограничения, требующее диагностики. –
@KeithThompson спасибо. вы можете видеть из моего ответа, что я знаю о стандарте-int-int, или могли бы догадаться, что, поскольку * все * по умолчанию используется 'int', по какой-то причине ... Я предполагаю, что' f (x) {} 'is хорошо сформированная функция, которая получает 'int' и возвращает' int' тоже: P. Я буду рад узнать, что думали K & R. – Elazar