Вам нужно передать определенный тип с плавающей запятой в sqrt
- нет целочисленной перегрузки.Используйте, например:
long double m = sqrt(static_cast<long double>(n));
Поскольку вы включаете cmath
, а не math.h
Я предполагаю, что вы хотите c ++.Для C вам нужно использовать, например:
double m = sqrt((double) n);
Ошибка, которую вы получаете, просто означает, что компилятор не может автоматически выбрать функцию sqrt
для вас - переданное вами целое число необходимо преобразовать вТип с плавающей запятой, и компилятор не знает, какой тип с плавающей запятой и sqrt
функцию он должен выбрать.