Подключение 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 — локальная установка не требуется.
Все уроки этого курса
- Подключение math.h
- Степени и корни
- Тригонометрия и логарифмы
- Округление и абсолютные значения