Основы программирования



              

Пример: решение квадратного уравнения - часть 3


scanf("%lf%lf%lf", a, b, c); // Ошибка! Передаются // значения вместо указателей

Помимо стандартной библиотеки ввода-вывода, в Си-программах широко используется стандартная библиотека математических функций. Ее описания содержатся в стандартном заголовочном файле math.h, который подключается строкой

#include <math.h>

Стандартная математическая библиотека содержит математические функции sin, cos, exp, log (натуральный логарифм), fabs (абсолютная величина вещ. числа) и многие другие. Нам необходима функция sqrt, вычисляющая квадратный корень вещественного числа.

Итак, приведем полный текст программы, решающей квадратное уравнение; он содержится в файле "squareEq.cpp".

#include <stdio.h> // Описания стандартного ввода-вывода #include <math.h> // Описания математической библиотеки

int main() { double a, b, c; // Коэффициенты уравнения double d; // Дискриминант double x1, x2; // Корни уравнения

printf("Введите коэффициенты a, b, c:\n"); scanf("%lf%lf%lf", &a, &b, &c);

if (a == 0.0) { printf("Коэффициент a должен быть ненулевым.\n"); return 1; // Возвращаем код некорректного } // завершения

d = b*b - 4.0*a*c; // Вычисляем дискриминант if (d < 0.0) { printf("Решений нет.\n"); } else { d = sqrt(d); // Квадр. корень из дискриминанта x1 = (-b + d) / (2.0 * a); // Первый корень ур-я x2 = (-b - d) / (2.0 * a); // Второй корень ур-я

// Печатаем ответ printf( "Решения уравнения: x1 = %lf, x2 = %lf\n", x1, x2 ); } return 0; // Возвращаем код успешного завершения }

Приведем пример выполнения программы:

Введите коэффициенты a, b, c: 1 2 -3 Решения уравнения: x1 = 1.000000, x2 = -3.000000

Здесь первая и третья строчки напечатаны компьютером, вторая строчка напечатана человеком (ввод чисел заканчивается клавишей перевода строки Enter).




Содержание  Назад  Вперед