Top.Mail.Ru
Ответы
Аватар пользователя
13лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Преобразование типов


Сразу говорю, язык С только изучаю, так что не ругайте))
Мне надо вычислить корень из числа, для этого как я понимаю надо использовать функцию 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.

По дате
По рейтингу
Аватар пользователя
Новичок
13лет

int main()
{
int a = 0;
float b = 0;

scanf("%i", &a);
b = float(a); // Приводим к типу float
b = sqrt(b); // Вычисляем квадратный корень
printf("%f", b);

return 0;
}

Используй флаг "%f" для вывода чисел с плавающей точкой. Код выше приведен для примера, читабельность не зашкаливает, придется поработать напильником.

Аватар пользователя
Просветленный
13лет

float d = (float)a;
или
double d = (double)a;