resueltos - C número complejo y printf
operaciones con numeros complejos julioprofe (3)
Debido a que el número complejo se almacena como dos números reales consecutivos en la memoria, haciendo
printf("%g + i%g/n", result);
funcionará también, pero genera advertencias de compilación con gcc porque el tipo y la cantidad de parámetros no coinciden con el formato. Hago esto en una pizca cuando estoy depurando pero no lo hago en el código de producción.
Cómo imprimir (con printf) número complejo? Por ejemplo, si tengo este código:
#include <stdio.h>
#include <complex.h>
int main(void)
{
double complex dc1 = 3 + 2*I;
double complex dc2 = 4 + 5*I;
double complex result;
result = dc1 + dc2;
printf(" ??? /n", result);
return 0;
}
¿Qué especificadores de conversión (u otra cosa) debería usar en su lugar "???"
Deje %+f
elegir el signo correcto para usted para la parte imaginaria:
printf("%f%+fi/n", crealf(I), cimagf(I));
Salida:
0.000000+1.000000i
Tenga en cuenta que i
al final.
printf("%f + i%f/n", creal(result), cimag(result));
No creo que haya un especificador de formato específico para el tipo complejo C99.