55 votes

C un nombre complexe et printf

Comment imprimer ( avec printf ) nombre complexe? Par exemple, si j'ai ce code:

#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;
}

..ce que la conversion des prescripteurs ( ou autre chose ) dois-je utiliser à la place "???"

63voto

John Calsbeek Points 19381
printf("%f + i%f\n", creal(result), cimag(result));

Je ne crois pas qu'il y a un spécificateur de format pour la C99 de type complexe.

0voto

Kipp Cannon Points 31

Parce que le nombre complexe est stockée en tant que deux nombres réels dos-à-dos dans la mémoire, en faisant

printf("%g + i%g\n", result);

fonctionnera aussi bien, mais génère des avertissements du compilateur gcc, car le type et le nombre de paramètres ne correspond pas au format. Je fais cela dans un pincement lors du débogage, mais ne pas le faire dans le code de production.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X