This exercise is available at
`https://study.find-santa.eu/exercises/c/exercise_structs/`.

For the sake of the environment, please avoid printing these instructions in the future. Thank you!

For the sake of the environment, please avoid printing these instructions in the future. Thank you!

**Complex Numbers**

Implement a new type`Complex`

that stores the`real`

number and the imaginary unit (`imag`

). Both`real`

and`image`

should be`double`

. Implement the following functions:

Having these functions in place, it becomes possible to add, substract, and multiply two complex numbers. The mathematical basis for the implementation is available for addition and multiplication.`Complex add(Complex a, Complex b); // return the sum of `a` and `b``

Complex sub(Complex a, Complex b); // return the difference of `a` and `b`

Complex mul(Complex a, Complex b); // return the product of `a` and `b`

Use these functions in`main(.)`

to make sure they produce the correct outcomes for the following combinations:- 5+5i, 7+i;
- 5+5i, 7-3i;
- 3-2i, 7-3i;
- -5, 7-3i

`complex_numbers.c`**Student Data**

Implement a struct that stores information about a student in a new type called`Student`

. Each student has a`char first_name[30]`

,`char last_name[50]`

and a`unsigned long id`

. Implement the following functions:`Student read_student(); // read student information from stdin`

// print one student per line to stdout

void print_students(Student students[], size_t dimension);
In

`main(.)`

ask the user how many students should be stored.
Create an array holding the correct number of students and fill the array
by repeatedly calling `read_student()`

. Once finished,
print your in-memory student database to `stdout`

.Name the source file: