Spaltenbildung geht nicht



  • Hallo,
    ich möchte eine Ausgabe, die mir die Werte eines Arrays in 8 Spalten zurückgibt.
    also wenn die Werte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 sind, dann soll so die Ausgabe aussehen:
    1 2 3 4 5 6 7 8
    9 10 11 12 13 14

    Habe folgenden code, aber es funkts nicht:

    for(i=0; i<last+1; i++)
    	{
    		printf("%d\t", x[i]);
    		 if(((i%8) == 0) && i)
    			printf("\n");
             }
    

    Bitte um Ratschläge! 😞



  • kannst Du das Problem etwas genauer beschreiben als "funkt nicht"?
    Nach Deinem Code zu urteilen würde Dein Beitrag eher ins ANSI-C-Forum gehören.



  • Funktionieren tut schon etwas aber ebe nicht das was ich möchte.
    Spalten werden schon gebildet aber keine neue Zeile
    also habe ich dies als ergebnis
    1 2 3 4 5 6 7 8 9 10 11 12 13 14

    Also nach meinem code sollte eigentlich nach der 8 ein new line auftreten, oder ist die Bedingung falsch???

    if(((i%8) == 0) && i)
    


  • Hm, die Bedingung sieht eigentlich okay aus. Biste mal mit dem Debugger durchgesteppt?



  • Jester schrieb:

    Hm, die Bedingung sieht eigentlich okay aus. Biste mal mit dem Debugger durchgesteppt?

    Ich benutze UltraEdit und habe keinen Debugger gefunden.



  • hm, haste mal ((i+1)%8)==0 als Bedingung getestet? Vielleicht geht da irgendwas schief, obwohl mich das sehr wundert.

    MfG Jester



  • Jester schrieb:

    hm, haste mal ((i+1)%8)==0 als Bedingung getestet? Vielleicht geht da irgendwas schief, obwohl mich das sehr wundert.

    MfG Jester

    auch schon geschaut, aber keine Änderung.
    Im Buch ist die gleiche Bedingung gesetzt, müßte also eigentlich klappen.

    Ratlos 😕



  • Also hier einmal das gesamte Programm

    #include <stdio.h>
    
    int main()
    {
    	int x[5];
    	int i=0, temp, last, d;
    
    	printf("\033[2J");
    	printf("Werte eingeben, ende mit -1\n");
    	do
    	{
    		scanf("%d", &x[i]);
    		i++;
    	}while(i<5 && x[i-1] != -1);
    
    	if(i==5)
    		last=i-1;
    	else
    		last=i-2;
    	if(i>2)
    	{
    	printf("Eingegebene Werte:\n");		
    	for(i=0; i<=last; i++)
    	{
    		printf("%d\t", x[i]);
    		if(i && (!(i%5)))
    			printf("\n");
    	}
    	printf("\n\nArray sortiert:\n");
    	for(d=last; d != 0; d--)
    	{
    	for(i=0; i<last; i++)
    	{
    		if(x[i]>x[i+1])
    		{
    		temp=x[i];
    		x[i]=x[i+1];
    		x[i+1]=temp;
    	  }
    	}
    	for(i=0; i<last+1; i++)
    	{
    		printf("%d\t", x[i]);
    		if(((i+1)%8)==0)
    			printf("\n");
    	}
      }
      }
    
    		return 0;
    }
    

    Kann das jemand mal compilieren und seine Meinung/bzw. den Fehler sagen???



  • Problem selbstständig gelöst.
    Danke



  • wähle evtl. sinnvolle Variablennamen...
    Dann versteht man den Quellcode einfacher 😉

    Devil


Anmelden zum Antworten