Witam, mam pewien problem przy funkcjach wczytujących i drukujących liczby zespolone. Napisałem funkcję dla tablicy liczb zespolonych i tam wszystko działa jak należy, jednakże dla osobnych liczb (nie w tablicy) coś jest nie tak. Chodzi konkretnie o funkcje "wczyt_zwykly" i "druk_zwykly "Proszę o pomoc.
#include <stdio.h>
#include <stdlib.h>
#include <complex.h>
void wczyt1D(double complex z[],int n, char znak[]);
void druk1D(double complex z[],int n, char znak[]);
void minMaxComplex(double complex z[],int n,double complex wynikiComplex[]);
void sumDiff(double complex z1,double complex z2,int n,double complex wynikiComplex[]);
void wczyt_zwykly(double complex z);
void wczyt_zwykly(double complex z);
int main()
{
int n=3;
double complex z[n];
wczyt1D(z,n,"z");
druk1D(z,n,"z");
double _Complex z1;
double _Complex z2;
double wynikiComplex[2];
minMaxComplex(z,n,wynikiComplex);
wczyt_zwykly(z1);
//wczyt_zwykly(z2);
druk_zwykly(z1);
//druk_zwykly(z2);
//sumDiff(z1,z2,n,wynikiComplex);
//druk1D(wynikiComplex,2,"wyniki");
getchar();
return 0;
}
void wczyt1D(double complex z[],int n, char znak[])
{
int i;
for(i=0;i<n;i++)
{
printf("\n Podaj liczbe %s[%d]: ",znak,i);
scanf("%lf %lf",&(__real__ z[i]),&(__imag__ z[i]));
}
}
void druk1D(double complex z[],int n, char znak[])
{
int i;
for(i=0;i<n;i++)
{
printf("\n Liczba %s[%d]= %lf +j%lf",znak,i,creal(z[i]),cimag(z[i]));
}
}
void wczyt_zwykly(double complex z)
{
printf("\n Podaj liczbe zespolona:");
scanf("%lf %lf",&(__real__ z),&(__imag__ z));
}
void druk_zwykly(double complex z)
{
printf("\n Liczba zespolona wynosi: %lf +j%lf",creal(z),cimag(z));
}
void minMaxComplex(double complex z[],int n,double complex wynikiComplex[])
{
int i;
int ind1=0,ind2=0;
double min,max,modul;
min=max=cabs(z[0]);
for(i=1;i<n;i++)
{
modul=cabs(z[i]);
if(modul<min)
{
min=modul;
ind1=i;
}
if(modul>max)
{
modul=max;
ind2=i;
}
}
wynikiComplex[0]=z[ind1];
wynikiComplex[1]=z[ind2];
}
void sumDiff(double complex z1,double complex z2,int n,double complex wynikiComplex[])
{
wynikiComplex[0]=carg(z1)+carg(z2);
wynikiComplex[1]=carg(z1)-carg(z2);
}