Я пытаюсь выяснить, как отображать квадратный корень из числа, если он оказывается отрицательным (поскольку он вводится пользователем), и если да, то правильно отобразите его с отображаемым «i». Когда я делаю нормальную функцию sqrt
, результат всегда будет что-то вроде -1. # IND. Когда я попытался использовать двойные комплексные переменные, положительные числа и отрицательные числа получились бы чистыми.Как распечатать квадратный корень отрицательного числа с i, отображаемым в C
Ниже мой код; комментарии - вот моя цель. Переменные 4 num вводятся пользователем и могут быть любыми целыми, положительными или отрицательными.
// Display the square root of each number. Remember that the user can enter negative numbers and
// will need to find the negative root with the "i" displayed.
printf("\nThe square root of %d is %.4f", num1, sqrt(num1));
printf("\nThe square root of %d is %.4f", num2, sqrt(num2));
printf("\nThe square root of %d is %.4f", num3, sqrt(num3));
printf("\nThe square root of %d is %.4f", num4, sqrt(num4));
AFAIK, нет возможности короткого замыкания. Вы должны убедиться, что передаете неотрицательное значение в 'sqrt()' и напечатаете 'i', если исходное значение было отрицательным. Даже если вы используете сложные арифметические функции, я не думаю, что есть способ распечатать сложные значения с помощью '' printf() '] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html) кроме того, что они анализируют реальную и мнимую части и печатают их отдельно. –
"* Когда я попытался использовать двойные комплексные переменные, положительные числа и отрицательные числа получились бы чистыми. *« Что это значит? Это должно работать, но вы не показали свой код, который пытался это сделать, только вызов 'sqrt()', который явно не работает. –
['sqrt'] (http://en.cppreference.com/w/c/numeric/math/sqrt) работает с типом с плавающей точкой и возвращает один и тот же тип с плавающей запятой, поэтому как он может принять комплекс тип? И он не работает с отрицательными значениями, потому что он не возвращает сложный тип. Вы читали документацию? –