| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Переделать код из С++ в чистый С(Си) |
| Автор: Elaysa 19.5.2017, 21:49 |
| #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; double fix(double(*f)(double), double a, double b, double eps); double f(double x); int i; int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "");//подключение языков double a, b, eps; cout << "Нахождение приближенного значения корня методом деления отрезка пополам.\nВведите левую границу отрезка 'a' = "; cin >> a;//ввод левой границы отрезка 'a' cout << "Введите правую границу отрезка 'b' = "; cin >> b;//ввод правой границы отрезка 'b' cout << "Введите точность нахождения 'eps' = "; cin >> eps;//ввод точности нахождения 'eps' cout << "Приближенное значение корня = " << fix(f, a, b, eps) << endl; cout << "Приближенное значение корня найдено за " << i << " шагов" << endl; system("PAUSE"); return 0; } double fix(double(*f)(double), double a, double b, double eps) { double x = (a + b) / 2; while ((abs(b - a)>eps) && (f(x) != 0)) { if (f(a)*f(x)<0) b = x; else a = x; x = (a + b) / 2; cout << "x=" << x << endl; i++; } return x; } double f(double x) { return sin(x); } |