source

C복소수 및 프린트 f

goodcode 2022. 8. 30. 22:12
반응형

C복소수 및 프린트 f

( printf )의 복잡한 번호를 인쇄하는 방법예를 들어, 다음 코드가 있는 경우:

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

대신 어떤 변환 지정자(또는 다른 것)를 사용해야 합니까??"

printf("%f + i%f\n", creal(result), cimag(result));

C99 complex type에 특정 포맷 지정자는 없는 것 같습니다.

허락하다%+f가상 부품에 대한 올바른 기호를 선택합니다.

printf("%f%+fi\n", crealf(I), cimagf(I));

출력:

0.000000+1.000000i

주의:i마지막이에요.

복소수는 2개의 실수로 메모리에 연속해서 저장되기 때문에

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

는 동작하지만 파라미터의 종류와 수가 포맷과 일치하지 않기 때문에 gcc를 사용하여 컴파일러 경고를 생성합니다.디버깅할 때는 이 작업을 수행하지만 프로덕션 코드에서는 수행하지 않습니다.

GNU C 를 사용하면, 다음과 같이 동작합니다.

printf("%f %f\n", complexnum);

또는 "i"의 접미사를 가상 부분 뒤에 인쇄하려면 다음 절차를 따릅니다.

printf("%f %fi\n", complexnum);

언급URL : https://stackoverflow.com/questions/4099433/c-complex-number-and-printf

반응형