W jaki sposób przerobić poniższy kod, aby wczytywał losowe liczby zespolone?
#include <stdio.h>
#include <stdlib.h>
#include <complex.h>
void readComplex1D ( double complex z[], int n);
void printComplex1D ( double complex z[], int n,char nazwa[]);
void minMaxComplex( double complex z[], int n, double complex wynikiComplex[]);
int main() // int main(int argc, char *argv[])
{
int n=5;
double complex z[n];
double complex wynikiComplex[2];
readComplex1D (z, n);
printComplex1D (z,n,"z");
minMaxComplex(z,n,wynikiComplex);
printf("\n Wyniki");
printComplex1D (wynikiComplex,2, "Wyniki");
fflush(stdin);
getchar();
return 0;
}
void readComplex1D ( double complex z[], int n)
{
int i;
for ( i=0; i<n;i++)
{ printf("\n element[%d]=",i);
scanf("%lf %lf", &(__real__ z[i]),&(__imag__ z[i])); }
}
void printComplex1D ( double complex z[], int n, char nazwa[])
{
int i;
for ( i=0; i<n;i++)
printf("\n %s [%d]=%lf %lf", nazwa, i,creal(z[i]),cimag(z[i]));
}
void minMaxComplex( double complex z[], int n,double complex wynikiComplex[])
{
double min,max, modul;
int i, ind1=0,ind2=0;
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)
{
max=modul;
ind2=i;
}
}
wynikiComplex[0]=z[ind1];
wynikiComplex[1]=z[ind2];
}