C++

Sqrt C++: как посчитать квадратный корень и вывести результат

В C++ квадратный корень считают функцией std::sqrt из заголовка <cmath>. Нужно подключить <cmath>, передать число в std::sqrt() и вывести результат

Минимальный пример:

#include <cmath>
#include <iostream>

int main() {
    double value = 25;
    double result = std::sqrt(value);

    std::cout << result << std::endl;
    return 0;
}

Вывод:

5

Почему нужен cmath

sqrt относится к математическим функциям стандартной библиотеки. Поэтому без подключения <cmath> компилятор может не знать, что такое std::sqrt

Правильно:

#include <cmath>

И вызов:

std::sqrt(36)

В учебных примерах иногда пишут просто sqrt(36), но лучше сразу привыкать к std::sqrt, чтобы было понятно, откуда берется функция

Пример с вводом числа

#include <cmath>
#include <iostream>

int main() {
    double value;

    std::cout << "Введите число: ";
    std::cin >> value;

    if (value < 0) {
        std::cout << "Для отрицательного числа обычный корень не считаем" << std::endl;
        return 1;
    }

    std::cout << "Корень: " << std::sqrt(value) << std::endl;
    return 0;
}

Проверка:

Введите число: 81
Корень: 9

Если ввести -4, программа покажет понятное сообщение, а не странный результат

Как вывести корень в формуле

Если нужно вывести не только результат, но и саму формулу:

#include <cmath>
#include <iostream>

int main() {
    double value = 49;

    std::cout << "sqrt(" << value << ") = " << std::sqrt(value) << std::endl;
    return 0;
}

Вывод:

sqrt(49) = 7

Как управлять точностью вывода

std::sqrt возвращает число с плавающей точкой. Поэтому для неидеальных корней результат будет дробным:

#include <cmath>
#include <iomanip>
#include <iostream>

int main() {
    double value = 2;

    std::cout << std::fixed << std::setprecision(3);
    std::cout << std::sqrt(value) << std::endl;

    return 0;
}

Вывод:

1.414

std::fixed включает обычный десятичный формат, а std::setprecision(3) оставляет три знака после точки. Это удобно, когда вы выводите результат для пользователя, а не просто проверяете код в учебной задаче

Частые ошибки

Забыть include

Если не подключить <cmath>, компилятор может написать, что sqrt не объявлен

Искать символ корня в коде

В C++ не пишут математический знак √ как оператор. Используйте функцию std::sqrt

Передать отрицательное число

Для обычных double корень из отрицательного числа не даст нормальный вещественный результат. Для комплексных чисел нужна отдельная тема и <complex>

Ждать целый результат всегда

std::sqrt(2) вернет дробное число:

std::cout << std::sqrt(2) << std::endl;

Результат будет похож на:

1.41421

Использовать pow вместо sqrt без причины

Технически можно написать std::pow(value, 0.5), но для квадратного корня лучше использовать std::sqrt(value): так понятнее намерение кода, и стандартная библиотека дает отдельную функцию именно для этой операции

Практический сценарий: гипотенуза

Квадратный корень часто нужен в геометрии. Например, чтобы посчитать гипотенузу:

#include <cmath>
#include <iostream>

int main() {
    double a = 3;
    double b = 4;

    double c = std::sqrt(a * a + b * b);

    std::cout << c << std::endl;
    return 0;
}

Вывод:

5

Мини-задание

Сделайте программу, которая просит пользователя ввести площадь квадрата и выводит сторону квадрата:

double area;
std::cin >> area;
std::cout << std::sqrt(area) << std::endl;

Добавьте проверку, что площадь не отрицательная

Что почитать дальше по C++

Если нужен общий маршрут по теме, откройте рубрику C++. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x