0Pricing
C Academy · Урок

Подключение math.h

Подключите и используйте математическую библиотеку.

«Подключение math.h» — бесплатный урок C Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C Academy содержит 4 уроков всего.

Зачем нужен math.h

Язык C сохраняет своё ядро небольшим. Такие операции, как извлечение квадратного корня, возведение в степень и тригонометрические вычисления, не встроены в сам язык.

Вместо этого они находятся в заголовочном файле стандартной библиотеки math.h. Чтобы использовать эти функции, необходимо подключить заголовочный файл в начале программы.

Подключение заголовочного файла

Добавьте эту строку в начале файла рядом с stdio.h:

  • #include <stdio.h> — для ввода и вывода
  • #include <math.h> — для математических функций

Угловые скобки сообщают компилятору, что искать файл нужно в стандартных системных каталогах.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("math.h is ready\n");
    return 0;
}

Первый вызов math.h

После подключения math.h можно вызывать такие функции, как sqrt (квадратный корень).

Большинство математических функций принимают и возвращают значения типа double, поэтому результаты выводятся с помощью спецификатора формата %f.

#include <stdio.h>
#include <math.h>

int main(void) {
    double r = sqrt(16.0);
    printf("sqrt(16) = %f\n", r);
    return 0;
}

Подключение математической библиотеки

В некоторых системах, особенно в Linux с gcc, математические функции находятся в отдельном файле библиотеки.

Если появляется ошибка undefined reference, добавьте при компиляции флаг -lm:

  • gcc program.c -lm

-lm означает «подключить математическую библиотеку».

Всё имеет тип double

По умолчанию функции из math.h работают с типом double. Они принимают аргументы double и возвращают результаты double.

Можно передать и значение типа int. C автоматически преобразует его в double перед вызовом.

#include <stdio.h>
#include <math.h>

int main(void) {
    int n = 25;
    double root = sqrt(n);
    printf("root = %f\n", root);
    return 0;
}

Вывод математических результатов

Используйте %f для вывода значения double. Количество знаков после запятой можно задать с помощью %.2f (два знака).

Так длинные десятичные значения становятся аккуратными и удобными для чтения.

#include <stdio.h>
#include <math.h>

int main(void) {
    double r = sqrt(2.0);
    printf("%f\n", r);
    printf("%.2f\n", r);
    return 0;
}

Полезные константы

Во многих системах в math.h определены полезные константы, например M_PI для числа пи.

Они не входят в строгий стандарт, но очень распространены. Если M_PI отсутствует, можно определить её самостоятельно.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("pi is about %.5f\n", M_PI);
    return 0;
}

Что находится внутри

Заголовочный файл math.h предоставляет множество инструментов, сгруппированных по назначению:

  • Степени и корни: pow, sqrt
  • Тригонометрия: sin, cos, tan
  • Логарифмы: log, log10
  • Округление: floor, ceil, round

В следующих уроках мы рассмотрим каждую группу.

Сочетание математики и логики

Результаты функций из math.h являются обычными числами: их можно сравнивать и использовать в операторах if.

Здесь мы проверяем, является ли число полным квадратом, сравнивая его корень с целым числом.

#include <stdio.h>
#include <math.h>

int main(void) {
    double root = sqrt(49.0);
    if (root == 7.0) {
        printf("49 is a perfect square\n");
    }
    return 0;
}

Распространённые ошибки

Остерегайтесь следующих ошибок начинающих:

  • Забыть #include <math.h>
  • Забыть -lm при компоновке в Linux
  • Вывести значение double с помощью %d вместо %f

Каждая из этих ошибок приводит к непонятной ошибке или неправильному выводу.

Собираем всё вместе

Вот небольшая законченная программа, использующая две математические функции одновременно.

Обратите внимание на подключения в начале и на переменные типа double, в которых хранятся результаты.

#include <stdio.h>
#include <math.h>

int main(void) {
    double a = sqrt(81.0);
    double b = pow(2.0, 5.0);
    printf("sqrt=%.1f pow=%.1f\n", a, b);
    return 0;
}

Быстрая проверка

Какой заголовочный файл необходимо подключить, чтобы использовать такие функции, как sqrt и pow?

Итоги

Вы узнали, что математические функции находятся в math.h, который подключается с помощью #include <math.h>.

Эти функции используют тип double и выводятся с помощью %f, а в Linux для них может понадобиться флаг компоновки -lm. Далее мы подробно рассмотрим степени и корни.

Часто задаваемые вопросы

Урок «Подключение math.h» бесплатный?

Да — полный текст урока «Подключение math.h» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C Academy, подпишись на CoddyKit PRO. Курс C Academy содержит 4 уроков всего.

Чему я научусь в уроке «Подключение math.h»?

Подключите и используйте математическую библиотеку. Ты практикуешь C Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C Academy?

Предыдущий опыт не требуется. C Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Подключение math.h»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C Academy?

Да. Каждый урок C Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Подключение math.h
  2. Степени и корни
  3. Тригонометрия и логарифмы
  4. Округление и абсолютные значения
← Назад к C Academy