2017-06-03 1 views
-2
int input,n,i; 
    scanf("%d%d",&input,&n); 
    double a,b; 
    double complex arr[n]; 

     for (i = 0; i < n; ++i) 
     { 
     scanf("%lf%lf",&a,&b); 
     creal(arr[i])=a; 
     cimag(arr[i])=b; 
     } 

Fehler: L-Wert als linke Operand erforderlich Abtretungs enter code here creal (arr [i]) = a; warum kann ich nicht nehmen Eingang für eine Reihe von komplexer Zahl, wie ein Array von komplexen Zahlen in C scannen

+1

Was ist 'creal' und' cimage'? – Mureinik

+0

Oh warte, meinst du [diese] (http://en.cppreference.com/w/c/numeric/complex/creal)? – Mureinik

+1

'arr [i] = CMPLX (a, b);' – EOF

Antwort

0

Nach 6.2.5p13, können Sie (nicht getestet!)

double complex a[42]; 
double tmp[2]; 
tmp[0] = 3.14159; 
tmp[1] = -2.71828; 
memmove(a + 3, tmp, sizeof tmp); // a[3] = 3.14159 - 2.71828i 
+0

Anstelle der direkten Zuweisung könnten Sie sicherlich tun: 'if (scanf ("% lf% lf ", tmp, tmp + 1)! = 2)/* error * /;' – pmg

Verwandte Themen