1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Supersimpler C-Taschenrechner tuts nicht

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Cologne_Muc, 04.10.07.

  1. Cologne_Muc

    Cologne_Muc Schöner von Nordhausen

    Dabei seit:
    15.09.04
    Beiträge:
    318
    Hi,

    ich eigne mir gerade C an (auch durch Informatik an der Schule) und wollte jetzt mal eine einfache Addition zweier Integer, die der Benutzer eingibt, ausgeben. Leider wird die dritte Variable, die das Ergebnis darstellen soll, immer 0.

    Das ist mein Code

    Code:
    #include <stdio.h>
    
    int main()
    {
    	int n1, n2, n3;
    	
    	n3 = n1 + n2;
    	
    	printf("Bitte geben Sie zwei Summanden ein\n\n\t");
    	scanf("%i %i",&n1, &n2);
    	printf("Die Summe aus %i und %i ist = %i\n",n1,n2,n3);
    	return 0;
    }
    
    Habe ich es mir zu einfach gemacht? Bei Ergänzungen/Korrekturen bitte immer erläutern!

    Herzlichen Dank
    Cologne
     
  2. wwuha

    wwuha Carola

    Dabei seit:
    01.05.07
    Beiträge:
    113
    du hast die addition der beiden variablen gemacht, bevor du die zu addierenden zahlen eingelesen hast!
    richtiger wäre


    printf("Bitte geben Sie zwei Summanden ein\n\n\t");
    scanf("%i %i",&n1, &n2);
    n3 = n1 + n2;
    printf("Die Summe aus %i und %i ist = %i\n",n1,n2,n3);

    vor dem scanf ist ja in den variablen n1 und n2 noch nix enthalten -> es kommt immer 0 heraus
     
  3. Cologne_Muc

    Cologne_Muc Schöner von Nordhausen

    Dabei seit:
    15.09.04
    Beiträge:
    318
    Aha, demnach ist eine Definition der Variablen nicht nur direkt nach der Deklarierung möglich. Das wollte ich eh noch wissen. Sehr gut. Gleich mal austesten...
    *2 Minuten später* Sehr schön, es klappt. Danke nochmal.
     
  4. wwuha

    wwuha Carola

    Dabei seit:
    01.05.07
    Beiträge:
    113
    kein problem :)
     
  5. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    "n3 = n2 + n1" ist keine Definition, sondern eine Zuweisung. Du stellst dir das offenkundig so vor, dass n3 stets die Summe aus n2 und n1 trägt, also wie in der Mathematik. Dies ist falsch. n3 bekommt den Wert, der sich im Zeitpunkt der Zuweisung aus der Addition von n2 und n1 ergibt. Ändern sich später n2 oder n1, ändert sich n3 nicht.

    Einige Programmiersprachen lehnen daher diese im mathematischen Sinne falsche Semantik ab und führen einen eigenen Zuweisungsoperator ein, Pascal etwa mit "n3 := n2 + n1".
     

Diese Seite empfehlen