• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Переделать с С++ на чистый Си

  • Автор темы Автор темы Elaysa
  • Дата начала Дата начала

Elaysa

Ученик
Регистрация
19 Май 2017
Сообщения
2
Реакции
0
Баллы
0
Переделать с С++ на чистый Си

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

Код:
#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);
	
}
 
Назад
Сверху