Problem mit Array befüllen



  • Naja, wenn ich den Array größe 8 gesetzt hätte, würde da 9 stehen und da es keinen Wert 9 gibt kann er auch schlecht mit einem Wert vergleichen
    meine idee wäre, das ganze so zu schreiben:

    bubble(int array[z], int size)
     {
         int a, b,temp;
         for (a = 0; a < size; a++) {
     	for (b = 1; b < size; b++) {
     	    if (array[a] > array[b]) {
     		int temp = array[b];
     		array[b] = array[a];
     		array[a] = temp;
     	    }
     	}
    
         }
          for(z=0;z<size;z++){
           printf("%i ",array[z] );  
    }
    }
    

    Doch auch das führt mich aufs selbe problem zurück 😞



  • PlaZm0 schrieb:

    er setzt halt nur die höchste zahl ein letzte stelle, mehr aber auch nicht, der rest verschiebt sich einfach auf links
    das kann doch eigentlich garnicht sein?

    void bubble(int array[z], int size)
     {
         int a, b,temp;
         for (a = 0; a < size; a++) {
     	for (b = 0; b < size; b++) {
     	    if (array[a] > array[a + 1]) {
     		int temp = array[a];
     		array[a] = array[a + 1];
     		array[a + 1] = temp;
     	    }
     	}
         }
     }
    

    Weil du "size -i -1" schreiben musst, damit er das letzte Element nicht mehr mitsortiert... außerdem deklarierst du temp 2 mal. Du solltest dir die vorherigen Posts genauer anschauen, weil dort siehst du was du falsch machst.



  • oh man, das ist mir jetzt glatt ien bisschen peinlich, hab den code bei mir im programm echt total falsch zusammengebastelt, was sehen sich j und i auch so verdammt ähnlich :S
    Gut dass du es mir nochmal so gesagt hast, hab dann nochmal genauer hingeguckt
    Vielen Vielden Dank!!!
    Ihr habt mir echt RIESIG geholfen :D!!!
    glaub jetzt hab ich auch fast alles zusammen ^^


Anmelden zum Antworten