Hilfe: Array-Ausgabe



  • Hallo,

    ich soll aus einem Array die Elemente auslesen und in einer gutlesbaren Tabelle auf der Konsole ausgeben.
    Mein Prof hat uns den Tipp gegeben:

    printf("...%c", ... , jj%6?'   ':'\n');
    

    Das soll wohl eine Tabelle ergeben bzw die Werte nebeneinander reihen.
    Komme aber noch nicht so ganz damit klar.
    Bin jetzt soweit:

    for(l=0;l<=20;l++){
                         printf("%lf%c", arr[l],l%6?' ':'\n');
    }
    

    Kommt aber nicht wirklich das erwünschte Ergebnis raus und ich blicke auch noch nicht so ganz durch, bei diesem "Tipp".
    Was macht z.B. das "?" und der ":" ?
    Kann mir da jmd helfen?

    PS: Im oberen Code kann es vll sein, dass ein "j" zu viel ist. Stand aber so auf dem Aufgabenzettel.



  • dass

    1. l%6
    2. \n
    

    1 ein Modulo-Operator ist und 2 ein Seitenumbruch, weiß ich.



  • Verdammt, Schuldigung!
    Das Stichwort heißt scheinbar "Bedingungsoperator".



  • printf("%lf%c", arr[l],l%6?' ':'\n');
    

    Das bedeutet so viel wie: wenn l modulo 6 ungleich Null, schreib ein Leerzeichen,
    sonst einen Zeilenumbruch.

    Das lässt sich auch schreiben:

    char c;
    	if ( l%6 ) 
    		 c = ' '
    	 else 
    		c = '\n';
    	printf( "%lf%c", arr[l], c );
    

    Es wird ein ternärer Operator benutzt, der so funktioniert:
    a?b:c
    Wenn a, dann b sonst c. a, b und c können Variable, Funktionen sein, etc.

    Gruß,
    B.B.



  • Danke für die Hilfe.
    Hat funktioniert. 🙂


Anmelden zum Antworten