# C Program to Multiply Two Complex Number Using Structure

We know that all complex numbers are of the form A + i B, where A is known as Real part of complex number and B is known as Imaginary part of complex number.

To multiply two complex numbers a + ib and c + id, we perform (ac - bd) + i (ad+bc). For example: multiplication of 1+2i and 2+1i will be 0+5i.

In this tutorial, we are going to implement C program to multiply two complex number using structure. Structure is convenient for handling complex number since it has two parts real and imaginary parts.

## C Program to Multiply Two Complex Number

``````
#include<stdio.h>

/* Declaring Structure */
struct complex
{
float real;
float imaginary;
};

int main()
{
/* Declaring structure variable using struct complex */
struct complex cnum1, cnum2, mul;
printf("Enter real and imaginary part of first complex number:\n");
scanf("%f%f", &cnum1.real, &cnum1.imaginary);
printf("Enter real and imaginary part of second complex number:\n");
scanf("%f%f", &cnum2.real, &cnum2.imaginary);

mul.real = cnum1.real * cnum2.real - cnum1.imaginary * cnum2.imaginary;
mul.imaginary = cnum1.real * cnum2.imaginary + cnum2.real * cnum1.imaginary;

printf("PRODUCT = %0.2f + i %0.2f", mul.real, mul.imaginary);

return 0;
}
``````

Output of the Above Program

```Enter real and imaginary part of first complex number:
3
4
Enter real and imaginary part of second complex number:
4
4
PRODUCT = -4.00 + i 28.00
```

Modifying Above Program Using typedef

``````
#include<stdio.h>

/* Declaring Structure */
typedef struct
{
float real;
float imaginary;
};

int main()
{
/* Declaring structure variable using complex */
complex cnum1, cnum2, mul;
printf("Enter real and imaginary part of first complex number:\n");
scanf("%f%f", &cnum1.real, &cnum1.imaginary);
printf("Enter real and imaginary part of second complex number:\n");
scanf("%f%f", &cnum2.real, &cnum2.imaginary);

mul.real = cnum1.real * cnum2.real - cnum1.imaginary * cnum2.imaginary;
mul.imaginary = cnum1.real * cnum2.imaginary + cnum2.real * cnum1.imaginary;

printf("PRODUCT = %0.2f + i %0.2f", mul.real, mul.imaginary);

return 0;
}
``````

Output

```Enter real and imaginary part of first complex number:
1
2
Enter real and imaginary part of second complex number:
2
1
PRODUCT = 0.00 + i 5.00
```