Seite 1 von 1

Einfaches Rechnen in C

Verfasst: Do Nov 22, 2018 5:03 pm
von deep90sraviolihits
Hi hallo,

wer sich vielleicht noch erinnert, hab mich ungefähr im Sommer hier registriert, wollte damals unbedigt Java lernen und Handy Apps programmieren. :D Nunja, das ganze hat sich geändert, ich habe mich für ein Studium beworben, darin wird ausschließlich C und C++ gelehrt, und um mich schon ein wenig vorzubereiten, bin ich gerade Aktiv dabei C mit dem Openbook C von A bis Z zu lernen. Ok gut hab erst Anfang der Woche angefangen und übe auch nur ein paar Stunden am Tag (Zeit) aber es wird. Ich hab gerade die verschiedenen Datentypen gelernt und wie man mit der printf und scanf funktion umgeht. Die scanf funktion wird zwar nicht empfohlen, aber ich glaube das Einfaches Rechnen damit möglich ist.

Mein Code sieht aktuell wie folgt aus:

Code: Alles auswählen

/*einfaches Rechnen in C*/
#include <stdio.h>

int main () 
{
	int zahl1;
	int zahl2;

	int zahl3 = zahl1 + zahl2;
	
	printf("Bitte geben Sie eine Zahl ein :\t");
	scanf ("%d", &zahl1);
	printf("Bitte geben Sie erneut eine Zahl ein :\t");
	scanf ("%d", &zahl2);
	printf("Das Ergebnis Ihrer eingegebenen Zahlen ist %d\n",zahl3);
	return 0;
}
	
Meine Vorgehensweise:
Als erstes habe ich meine Variablen zahl1, zahl2 und zahl3 deklariert. Dabei habe ich zahl3 zugewiesen, das sie aus zahl1 + zahl2 besteht.

Als nächstes habe ich mit printf vorgegeben, das man ein Zahl eingeben soll, welche dann per scanf erfasst wird. Mit dem Adressoperator möchte ich, das die Eingabe in der ersten scanf funktion zu zahl1, und bei der zweiten funktion zu zahl2 verknüpft wird.

Als letztes möchte ich in der printf funktion das mein Ergebnis als zahl3 ausgegeben wird. Dafür habe ich das Formatzeichen %d genommen und nach dem Hochkommata nochmal die zahl3 hingeschrieben, da auf diese ja zugegriffen werden soll.

Ich habe gelesen, das scanf Probleme mit dem Tastaturpuffer hat und deshalb nicht zu empfehlen ist, ist aber Aktuell noch die einzige Funktion die ich dazu kann. :D Klar lerne ich noch mehr, aber mit diesem Programm wollte ich testen, ob ich die syntax ordentlich kann (Kompilieren war beim ersten mal erfolgreich).

Den Code schreibe ich auf Notepad++ und Kompilieren tue ich das ganze dann per Cygwin.


Mit freundlichen Grüßen

Deep90sraviolihits

Re: Einfaches Rechnen in C

Verfasst: Do Nov 22, 2018 5:24 pm
von Xin
Moin Moin

Etwas wichtiges hast Du in Deinem Posting vergessen: Die Frage ^^

Also schauen wir in den Code:

Code: Alles auswählen

	int zahl1;
	int zahl2;

	int zahl3 = zahl1 + zahl2;
...
	printf("Das Ergebnis Ihrer eingegebenen Zahlen ist %d\n",zahl3);
Die Frage lautet, wieso das Ergebnis nicht stimmt. Richtig?

Ein Computer ist eine Zustandsmaschine. Das hier ist nicht Mathematik, wo für zahl3 gilt, dass es die Summe aus zahl1 und zahl2 ist. zahl3 ist der Wert, der sich aus der Summe von zahl1 und zahl2 ergibt. Da du zu dem Zeitpunkt der Zuweisung aber zahl1 und zahl2 noch nicht eingegeben hast, sind die Werte in zahl1 und zahl2 willkürlich. Beides wird addiert und in zahl3 gespeichert. Nachdem Du die Werte eingegeben hast, wird dann Summe der beiden willkürlichen Werte ausgegeben.

Richtige Frage beantwortet? ;)

Re: Einfaches Rechnen in C

Verfasst: Fr Nov 23, 2018 12:14 am
von deep90sraviolihits
Wenn ich es richtig verstanden habe, muss ich die Rechnung dann erst in der letzten printf Funktion durchführen? Ich würde das Problem aber gerne selbst lösen. :D Ich werde mich morgen nochmal gründlicher in die Datentypen reinlesen und gucken, welche alternativen Funktionen mir für die Eingabe zur verfügung stehen.

Und ja, vor lauter Geschichten erzählen habe ich doch ganz die Frage vergessen. :mrgreen:


Edit: Ich bin Blöd, hab gar nicht in Betracht gezogen das ich zahl3 auch nach den Funktionen noch einen Wert zuweisen kann. Naja immerhin was gelernt...

Re: Einfaches Rechnen in C

Verfasst: Fr Nov 23, 2018 9:49 am
von Xin
deep90sraviolihits hat geschrieben:
Fr Nov 23, 2018 12:14 am
Wenn ich es richtig verstanden habe, muss ich die Rechnung dann erst in der letzten printf Funktion durchführen?
Du musst die Anweisungen in der richtigen Reihenfolge durchführen. Wie beim Kochen. Pfanne auf Herd, Herd an, Eier aufschlagen, Eier in die Pfanne geben, kurz warten, Herd aus, Pfanne auf Teller leeren, von Teller essen. Da kommt was anderes raus als bei Pfanne auf Teller leeren, Pfanne von Herd nehmen, Herd aus, kurz warten, Eier in Pfanne geben, von Teller essen, Eier aufschlagen, Herd einschalten.
Das eine gibt ein Frühstück, das andere einen Hausbrand.
Du musst erst die Zahlen holen, bevor Du sie verrechnen kannst.
deep90sraviolihits hat geschrieben:
Fr Nov 23, 2018 12:14 am
Ich würde das Problem aber gerne selbst lösen. :D Ich werde mich morgen nochmal gründlicher in die Datentypen reinlesen und gucken, welche alternativen Funktionen mir für die Eingabe zur verfügung stehen.
Das C-Tutorial wurde geschrieben, damit es gelesen wurde.
deep90sraviolihits hat geschrieben:
Fr Nov 23, 2018 12:14 am
Edit: Ich bin Blöd, hab gar nicht in Betracht gezogen das ich zahl3 auch nach den Funktionen noch einen Wert zuweisen kann. Naja immerhin was gelernt...
Das ist der Sinn und Zweck dieser Seite. :-)