Показать сообщение отдельно
Старый 19.05.2017, 22:41   #1 (permalink)
Elaysa
Новичок
 
Регистрация: 19.05.2017
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Переделать с С++ на чистый Си

Помогите пожалуйста переделать программу на чистый Си

Код:
#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);
	
}
Elaysa вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070