noob@Taschenrechner
-
er.... da ist was dran.... erm kannst du ihn dazu bringen? ich weiß noch nicht wirklich wie
-
Du liesst mit scanf("%d", &zeichen); eine Zahl ein. Wenn Du z.B. eine 1 eingibst, steht auch eine 1 in zeichen drin.
Mit case '1'(im switch-Teil) überpüfst Du dann, ob das Zeichen '1' in zeichen steht. '1' hat aber den ASCII Code 49 und damit vergleichst Du 1 mit 49, was natürlich unwahr ist.
Wenn Du zeichen mit einem Zeichen vergleichen willst, musst Du auch dafür sorgen, dass Du ein Zeichen einlisst und keine Zahl.
-
Zum Rechnen: Bsp:
case '1': printf ("Ihre Aufgabe lautet somit %d %c %d = %d\n", zahl1, zeichen, zahl2, zahl1+zahl2); break;
-
Asgard schrieb:
case '1': printf ("Ihre Aufgabe lautet somit %d %c %d = %d\n", zahl1, zeichen, zahl2, zahl1+zahl2); break;
oki schonmal ein guter tip. aber was ist wenn jemand ein - anstatt + eingibt, dann funtzt der code oben nicht mehr oder?
-
Naja, Du musst ja nur die Zeilen weiter oben anpassen...also bei minus schreibst Du dann halt zahl1-zahl1, bei mal, zahl1*zahl2 usw.
-
dann muss ich 7463852645823 millionen cases machen oder nicht? gibts nicht die möglichkeit das sich die rechnung aus den variablen ergibt?
z.b ich lese folgendes ein
zahl 50
zeichen +
zahl2 100so wenn ich die werte eingelesen hab muss sich die aufgabe doch irgendwie von selbst erledigen oder so. hätte man z.B. ein * eingegeben rechnert er halt nicht + sondern mal. also zahl zeichen zahl2 = ergebnis oder so?
-
Also wenn du wirklich an der ursprünglichen Fassung deines Taschenrechners festhalten willst und die Rechenart an Hand der Eingabe von 1/2/3 oder 4(Das willst du doch, oder?) bestimmst, musst du zeichen als int deklarieren und ohne ' ' switchen, da es sich um eine zahl handelt. Dann kannst du vor jede Zeile, die ein Ergebnis mit printf ausgibt noch die entsprechende Rechnung(zb ergebnis = zahl1 + zahl2, bei addition) anstellen und fertig is der Salat. Dann kannst du jedoch natürlich nicht mehr mit %c das Rechenzeichen ausgeben, aber da du für jede Rechenart sowieso eine eigene printf anweisung hast, kannst du auch gleich das Rechenzeichen in den string setzen.
-
Switch doch einfach die Rechenzeichen und nimm die EIngaben um das Ergebnis auszurechnen
-
Einfacher isses natürlich so, aber ich meinte ja, wenn er bei seinem Ansatz bleiben will... Sonst können wir ihm auch gleich den Link zur fertigen Taschenrechner-Source geben.
-
Tach, hier noch mal alles zusammen.
#include <stdio.h> int main () { int zahl1; int zahl2; int zeichen; printf ("Bitte geben Sie Ihre erste Zahl ein: \n"); scanf ("%d", &zahl1); printf ("Nun waehlen Sie bitte den Zeichenerator aus -> 1:+ 2:- 3:* 4:/ \n"); scanf ("%d", &zeichen); printf ("Bitte geben Sie Ihre zweite Zahl ein: \n"); scanf ("%d", &zahl2); switch (zeichen) { case 1: printf ("Ihre Aufgabe lautet somit %d + %d = %d\n", zahl1, zahl2, zahl1 + zahl2); break; case 2: printf ("Ihre Aufgabe lautet somit %d - %d = %d\n", zahl1, zahl2, zahl1 - zahl2); break; case 3: printf ("Ihre Aufgabe lautet somit %d * %d = %d\n", zahl1, zahl2, zahl1 * zahl2); break; case 4: printf ("Ihre Aufgabe lautet somit %d / %d = %d\n", zahl1, zahl2, zahl1 / zahl2); break; } return 0; }