Uebung Arrays vergleichen...



  • du musst auch den "Code"-button anklicken oder deinen code wenigstens in [ code ] [ /code ] (natürlich ohne leerzeichen 😃 ) packen.

    sieht schonmal ganz gut aus, bekommst du aber sicherlich noch kürzer hin, sprich ohne continue und else.



  • Das geschieht nicht von alleine, du musst den code in code-tags setzen, die dinger unter den smileys. Vergiss einen codetagblock nicht zu schließen.



  • Code mit der Maus markieren und auf den C Button unter dem 😡 klicken.

    Oder, wenn kein Text markiert ist, den Cursor an den Anfang vom Code setzen und auf den C-Button clicken (dann bekommt der einen 😉
    Am Ende vom Code machst du das Gleiche.



  • Ohhh Mann

    Asche auf mein Haupt und zwar ganz viel. Aber jetzt hab ich's... Danke



  • Da du den if-Zweig (die Gleichheit) ja gar nicht möchtest, ist es auch überflüssig ihn hinzuschreiben.

    Dann kannst du die Bedingung negieren und es steht nur noch das Nötige da:

    if (array1[i] != array2[i])                   //Wenn array1 ungleich array2
            {
                printf("Unterschied an Position %d\n", i);//dann gib die Position des Unterschiedes aus.
                break;
            }
    


  • Danke, nicht schlecht. Super Optimierung. Bei einem langen Quellcode spart so etwas echt Zeit, Arbeit und die ganze Sache ist schlanker. Habs direkt in mein Uebungsscript eingebaut...

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	int array1[10], array2[10];
    	int i;
    
    	for (int i = 0; i < 10; i++)
    	{
    		array1[i] = i;
    		array2[i] = i;
    	}
    	array2[9] = 30;
    
    	for (int i = 0; i < 10; i++)
    	{
    		if (array1[i] != array2[i])					  //Wenn array1 gleich array2
    		{
    			printf("Unterschied an Position %d\n", i);//dann gib die Position des Unterschiedes aus.
    			break;
    		}
    
    	}
    
    	return 0;
    }
    


  • Die Deklaration von i in Zeile 8 wird nicht benötigt, denn Du deklarierst (ein anderes) i lokaler in den for-Schleifen die das in Zeile 8 deklarierte i überdecken. Die in Zeile 8 vereinbarte Variable wird in Deinem Code also niemals verwendet.

    Guckst Du Joy of Programming: Scope, Lifetime and Visibility in C.


  • Mod

    Das sieht übrigens danach aus, als würde andy_f einen C++-Compiler für seinen C-Code benutzen. Was er lieber nicht tun sollte.



  • Seit hier nebst Reaktion hab' ich mir vorgenommen zu sowas nix mehr zu sagen. 🤡



  • andy_f schrieb:

    Super Optimierung. Bei einem langen Quellcode spart so etwas echt Zeit, Arbeit und die ganze Sache ist schlanker.

    Der Compiler kann das auch.
    Und noch besser.

    Im Endergebnis wirst du keinen Unterschied feststellen.

    Und warum dann das Ganze?
    Irgendwann liest irgendjemand (auch du) den Code und denkt sich "Was soll das?"

    So steht im Code genau das, was du erreichen möchtest: den Unterschied feststellen.



  • Swordfish Stimmt, die Deklaration des i kann ich löschen. Danke fuer den Hinweis. Wir direkt entfernt...


Anmelden zum Antworten