Rechnen in c

  • Themenstarter Themenstarter ByeBye 267686
  • Beginndatum Beginndatum
B

ByeBye 267686

Hey, ich habe seid einigen Tagen wieder mit der c programmierung angefangen und habe eine Frage, zu meinem folgenden "Programm"

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int zahl1, zahl2, Sum1, Diff1, pro1, quo1;
int waehlen = 0;


/*Zahlen eingeben*/
printf("Taschenrechner 1.0\n\n");
printf("Geben Sie einen Wert fuer [1] ein: ");
scanf("%i", &zahl1);
printf("Geben Sie einen Wert fuer [2] ein: ");
scanf("%i", &zahl1);

/*Aktion Auswählen*/

printf("\n1: Um die Summe der beiden Zahlen auszurechnen druecken Sie die [1]: ");
printf("\n2: Um die Differenz der beiden Zahlen auszurechnen druecken Sie die [2]: ");
printf("\n3: Um das Produkt der beiden Zahlen auszurechnen druecken Sie die [3]: ");
printf("\n4: Um den Quotienten der beiden Zahlen auszurechnen druecken Sie die [4]: ");
printf("\n\nIhre Zahl lautet: ");
scanf("%i", &waehlen);

/*Rechnung festlegen*/
float erg1 = 1;
float erg2 = 2;
float erg3 = 3;
float erg4 = 4;

switch(waehlen) {
case 1: erg1 = zahl1 + zahl2; break;
case 2: erg2 = zahl1 - zahl2; break;
case 3: erg3 = zahl1 * zahl2; break;
case 4: erg4 = zahl1 / zahl2; break;
}

/*Ergebnis*/
if (erg1 == 1) {
printf("\nIhr Ergebnis lautet: %.2f");
}
else (erg2 == 2) ;{
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg3 == 3) ;{
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg4 == 4) ;{
printf("Ihr Ergebnis lautet: %2.f");
}

system("PAUSE");
return 0;
}


Erstmal vorab: Ich möchte, dass man am anfang 2 zahlen eingibt und sich danach aussuchen kann, ob man die addiert, subtrahier, multupliziert, oder dividiert. das klappt auch soweit, bis auf die Rechnung. Hoffentlich findet Ihr den grund, warum das nicht funktioniert. Bin schon die ganze Zeit am rumhantieren, aber es will nicht klappen. Mein wissensstand ist gerade nicht sehr groß, was c angeht, und wenn´s geht, keine fachbegriffe zur Erklärung benutzen :) Danke Euch :)
 
C++:
/*Rechnung festlegen*/ 
float erg1 = 1;
float erg2 = 2;
float erg3 = 3;
float erg4 = 4;

switch(waehlen) {
case 1: erg1 = zahl1 + zahl2; break;
case 2: erg2 = zahl1 - zahl2; break;
case 3: erg3 = zahl1 * zahl2; break;
case 4: erg4 = zahl1 / zahl2; break;
}

/*Ergebnis*/
if (erg1 == 1) {
printf("\nIhr Ergebnis lautet: %.2f"); 
}
else (erg2 == 2) ;{
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg3 == 3) ;{
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg4 == 4) ;{
printf("Ihr Ergebnis lautet: %2.f");
}
?
Was genau geht denn nicht?
Aber so wie du es geschrieben hast darf es nicht gehen^^
MFG
 
Zuletzt bearbeitet von einem Moderator:
vor dem else wird ein primärer-ausdruck erwartet. okay und warum darf es nicht funktionieren?
 
OK Ich denke es darf nicht funktionieren^^
Aber warum prüfst du das erg? Es wird doch sowieso überschrieben währen der Rechnung!
Und was geht jetzt nochmal nicht? Startet es nicht, Compiler Fehler. Keine Ausgabe ( am warscheinlichsten ).
Und falls du denkst ich bin böse... nein tut mir leid wenn ich mich so ausdrücke^^
MFG
 
ich compiliere es, und gebe es dann aus. mach das mit dev++, aber es wird ja nicht ausgeführt, da ja ein fehler drinne ist.

also, soll ich alles ab dem /*Ergebnis*/ weglassen?, hatte ich vorhin auch schon, hat aber net geklappt, was nun?
 
Achso du bekommst ein Compiler fehler...
Mache mal die Semikolons nachdem else if's weg:
Und aus dem eine else ein else if
C++:
/*Ergebnis*/
if (erg1 == 1) {
printf("\nIhr Ergebnis lautet: %.2f"); 
}
else if(erg2 == 2){
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg3 == 3){
printf("Ihr Ergebnis lautet: %.2f");
}
else if (erg4 == 4){
printf("Ihr Ergebnis lautet: %2.f");
}
Edit Poste doch mla bitte den ganzen fehler mit Zeilen nummer.
MFG
 
Zuletzt bearbeitet von einem Moderator:
Okay hab ich. es wird jetzt ausgeführt, aber als ergebnis kommt überall 0.00 raus
 
Dann denk mal nach warum^^
man darf hier leider keine Komplett lösung posten sry.... :S
Aber worüber du nachdenken solltest ist:
if (erg1 == 1)
printf
/*Rechnung festlegen*/
float erg1 = 1;
float erg2 = 2;
float erg3 = 3;
float erg4 = 4;

Da macht einiges kein Sinn...
MFG
 
switch(waehlen) {
case 1: printf("\nIhr Ergebnis lautet: %.2f", zahl1 + zahl2); break;
case 2: printf("\nIhr Ergebnis lautet: %.2f", zahl1 - zahl2); break;
case 3: printf("\nIhr Ergebnis lautet: %.2f", zahl1 * zahl2); break;
case 4: printf("\nIhr Ergebnis lautet: %.2f", zahl1 / zahl2); break;
}

ich habs jetzt so geschrieben, trotzdem kommt noch 0.00 überall raus Oo
 
Das ist schonmal gut.
Aber denk nochmal am Anfang nach da fragst du nach zahl 2 schreibst aber auf zahl1!? ( Hats Click gemacht? ^^ )
 
Zurück