Programm falsches Ergebnis & Zuweisungen



  • Guten Morgen

    Hab 2 Fragen
    Ich versuche gerade herauszufinden welche dieser Zuweisungen falsch sind.
    Für mich sind die ersten zwei falsch, die unteren 3 Zuweisungen finde ich eigentlich ganz normal.
    Oder ist mir da ein Fehler unterlaufen?

    summe = summe + 10
    x*x = x*5
    5a = anfang + ende
    wert = eingabe + alter_wert * 2
    g_betrag = betrag * 1.14

    Zweite Frage
    Wieso liefert mir dieser Code als Ergebnis 20?
    Weil ich summe 2x initialisiert habe oder steckt da mehr dahinter?

    #include <stdio.h>
    
    int main()
    {
    	double summe, zahl;
    
    	zahl = 10;
    
    	summe = summe + zahl;
    	summe = summe + zahl;
    
    	printf("Ergebnis = %f",summe);
    }
    


  • Guten morgen,

    mu schrieb:

    summe = summe + 10                //<-- zulässig
    x*x = x*5                         //<-- nicht erlaubte zuweisung
    5a = anfang + ende                //<-- nicht erlaubte zuweisung
    wert = eingabe + alter_wert * 2   //<-- zulässig
    g_betrag = betrag * 1.14          //<-- zulässig
    

    Im folgenden Code hast du einen Fehler gemacht:

    mu schrieb:

    #include <stdio.h>
    
    int main()
    {
    	double summe, zahl;
    	
    	zahl = 10;
    	
    	summe = summe + zahl;  //<-- FEHLER!
    	summe = summe + zahl;
    	
    	printf("Ergebnis = %f",summe);
    }
    

    Du verwendest an der angegebenen Stelle summe, obwohl du die Variable
    nicht initialisiert hast. Richtig wäre:

    #include <stdio.h>
    
    int main()
    {
        double summe, zahl;
    
        summe = 0.;  //<-- summe initialisieren
        zahl = 10.;  //<-- zahl ist double, also auch mit double initialisieren.
    
        summe = summe + zahl;
        summe = summe + zahl;
    
        printf("Ergebnis = %f",summe);
    
        return 0;  //<-- hast du vergessen
    }
    

    Was passiert jetzt hier:

    Zeile 10:

    summe =  0. + 10.;
    

    Zeile 11:

    summe = 10. + 10.;
    

    Also ist das Ergebnis 20.

    Gruß mcr



  • richtig: summe = summe + 10 ;
    falsch: x*x = x*5 ;
    falsch:5a = anfang + ende ;
    richtig: wert = eingabe + alter_wert * 2 ;
    richtig: g_betrag = betrag * 1.14 ;

    double summe, zahl;
    
        zahl = 10;
    
        //summer = 0 
        summe = summe + zahl;
        //summe= 10, da 0 +10 = 10 ist
        summe = summe + zahl;
       //summe=10, da 10+10=20 ist
    

    was mich wunderst, summe soltle du am anfang mit 0 initalisieren.,.



  • Variabelnamen dürfen am anfang keine Zahlen beeinhalten, habs eben gelesen.

    wegen der summe.
    In meinem Buch steht nur, das nur "unter Umständen" ein falsches ergebnis geliefert wird.

    Wann? bis jetzt hats immer 20 ausgegeben, obwohl nicht initialisiert war



  • in Visual studio wird im debug modus die variabeln evtl. automatisch auf 0 initalisiert.. wenn du release kompilierst steht irgend ein wert drin..

    als du sollte varialben immer initaliseren



  • arbeite im moment mit eclipse.
    sowas wird nicht angezeigt



  • gut, dann kann es sein das eclipse die variablen automatisch auf 0 initalisieert.. aber gewöhn dir an die variablen selber zu initalisieren



  • BorisDieKlinge schrieb:

    gut, dann kann es sein das eclipse die variablen automatisch auf 0 initalisieert

    und wie soll eclipse das machen? nach dem build nochmal die .exe patchen oder wie?
    🙂



  • ????? wieso patchen.. die exe wird ja von eclipce generiert.. da kann der compiler ja solche std. initaliseren miteinfügen... aber ich sag ja ich kenn eclipse nich


Anmelden zum Antworten