Witam, proszę sprawdzenie czy ten program, który napisałem działa poprawnie. Oto treść polecenia:
Napisać program wczytujący z klawiatury liczby zespolone Z1 i Z2 typu double _Complex oraz funkcje: sumDiff obliczającą i zwracającą sumę i różnicę argumentów zespolonych, funkcję prodQ obliczającą i zwracającą iloczyn i iloraz argumentów zespolonych. Funkcje wywołać w funkcji main() i wydrukować wyniki.

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

void sumDiff(double complex z1, double complex z2, double complex wartosciComplex[]);
void prodQ(double complex z1,double complex z2,double wartosciComplex2[]);


int main()
{


double _Complex z1;
double _Complex z2;
double complex wartosciComplex[2];
double complex wartosciComplex2[2];

printf("\n Podaj liczbe z1:");
scanf("%lf %lf",&(__real__ z1),&(__imag__ z1));
printf("\n Podaj liczbe z2:");
scanf("%lf %lf",&(__real__ z2),&(__imag__ z2));

printf("\n Liczba zespolona z1= %lf +j%lf",creal(z1),cimag(z1));
printf("\n Liczba zespolona z2= %lf +j%lf",creal(z2),cimag(z2));

sumDiff(z1,z2,wartosciComplex);
printf("\n Suma wynosi: %lf",wartosciComplex[0]);
printf("\n Roznica wynosi: %lf",wartosciComplex[1]);

prodQ(z1,z2,wartosciComplex2);
printf("\n Iloczyn wynosi: %lf",wartosciComplex2[0]);
printf("\n Iloraz wynosi: %lf",wartosciComplex2[1]);

    getchar();
    return 0;
}
void sumDiff(double complex z1, double complex z2, double complex wartosciComplex[])
{
    double suma=0, roznica=0;
    suma=carg(z1)+carg(z2);
    roznica=carg(z1)-carg(z2);

    wartosciComplex[0]=suma;
    wartosciComplex[1]=roznica;
}
void prodQ(double complex z1,double complex z2,double wartosciComplex2[])
{
    double iloraz,iloczyn;
    iloczyn=(carg(z1))*(carg(z2));
    iloraz=carg((z1))/(carg(z2));

    wartosciComplex2[0]=iloczyn;
    wartosciComplex2[1]=iloraz;
}