

Преобразование типов
Сразу говорю, язык С только изучаю, так что не ругайте))
Мне надо вычислить корень из числа, для этого как я понимаю надо использовать функцию sqrt из библиотеки maths.
Но sqrt поддерживает числа типа double, float или long double.
У меня числа типа int. Как перевести их в данные типы(double, flout или long double) без потери информации.
(число a типа int)
float d;
d=a;
float c = sqrt(d);
printf("%i",c);
например вот здесь, при переводе корень получается равен 00.
Подскажите, что я неправильно сделал
Может быть проблема в том, что это число ( a ) я ввожу с клавиатуру с помощью scanf("%i", &a), и надо как-то по-другому переводить числа
Ввожу число равное например 49. Выдаёт - 00.
int main()
{
int a = 0;
float b = 0;
scanf("%i", &a);
b = float(a); // Приводим к типу float
b = sqrt(b); // Вычисляем квадратный корень
printf("%f", b);
return 0;
}
Используй флаг "%f" для вывода чисел с плавающей точкой. Код выше приведен для примера, читабельность не зашкаливает, придется поработать напильником.
float d = (float)a;
или
double d = (double)a;