본문 바로가기
개발 공부/C언어

[열혈 C 프로그래밍] 도전! 프로그래밍4, 도전3번 정답

by 반달bear 2022. 7. 30.
반응형

구조체 포인터 배열을 선언하고 동적 할당하여 좀더 데이터를 효율적으로 써보고자...(?) 노력하는 코드를 작성해보았다.

 

#include<stdio.h>
#include<stdlib.h>

typedef struct complex{
    float comnum1;
    float comnum2;
} Complex;

void AddComplexNumber(Complex * comnum)
{
    double real=comnum[0].comnum1+comnum[1].comnum1;
    double image=comnum[0].comnum2+comnum[1].comnum2;
    printf("added real number : %g, added imagenary number : %g\n",real,image);
}

void MulComplexNumber(Complex * comnum)
{
    double real=((comnum[0].comnum1*comnum[1].comnum1) - (real=comnum[0].comnum2*comnum[1].comnum2));

    double image=((comnum[0].comnum2*comnum[1].comnum1) + (comnum[0].comnum1*comnum[1].comnum2));


    printf("multiplied real number : %g, multiplied imagenary number : %g\n",real,image);

}

int main(void)
{
    int index=2; //the number of complex number
    Complex * comnum = (Complex*)malloc(sizeof(Complex)*index);

    fputs("enter first complex number : (real number first, imaginary number second",stdout);
    scanf("%f %f",&comnum[0].comnum1,&comnum[0].comnum2);
    fputs("enter second complex number : (real number first, imaginary number second",stdout);
    scanf("%f %f",&comnum[1].comnum1,&comnum[1].comnum2);

    AddComplexNumber(comnum);
    MulComplexNumber(comnum);

    free(comnum);
    return 0;
    
}
반응형

댓글