Veröffentlicht 13. Oktober 200618 j Hallo Zusammen, ich bin im moment dabei einen kleinen Rechner in C zu programmieren (Bin Anfänger). Ich bin auch schon sehr weit gekommen und hab es auch durch: if scanf("%f",1); printf("\n%f + %f = %f",x,y,x+y); und so hab ich das halt bis zur Zahl 4 gemacht (Division). Das funktioniert auch alles gut nur ich hätte es gerne so das ich nicht Zahlen von 1-4 eingeben muss sondern die Rechenzeichen. Kann mir da einer von euch helfen ? Gruß Thunderbird
13. Oktober 200618 j nur ich hätte es gerne so das ich nicht Zahlen von 1-4 eingeben muss sondern die Rechenzeichen.Das ist - so ohne weiteres - nicht so einfach möglich wie bei der Eingabe der Zahlen. Operatoren lassen sich nicht "mal eben" über eine Eingabe liefern und anschließend verwenden.
13. Oktober 200618 j Ja das ist mir schon klar....ich habe jetzt gehört es geht irgendwie über eine if(getch() verbindung ? Stimmt das ?
13. Oktober 200618 j Hi, da musst du den Ausdruck schon parsen, was, wie perdi andeutet, nicht so einfach gemacht ist. Wenn du z. B. Klammern und bestimmte Rechenregeln berücksichtigen möchtest, sogar eine sehr anspruchsvolle Aufgabe. Aber seis drum, google mal nach "Parser" und "Taschenrechner". Da sollten schon einige hilfreiche Links erscheinen.
13. Oktober 200618 j Ich will ja am Anfang einfach nur mal + - * / rechnen und das auch nur mit zwei Zahlen !!! Nicht mit k lammern und so
13. Oktober 200618 j Hi, ja trotzdem musst du das parsen, was ja erstmal nix anderes heisst als dass du deinen Ausdruck aufteilen und entsprechend auswerten musst.
13. Oktober 200618 j Könnte es so funktionieren ? char mein_zeichen; scanf("%c",&mein_zeichen); if(mein_zeichen=='+') printf(" %f + %f ist %f",x,y,x+y); if(mein_zeichen=='*') printf(" %f * %f ist %f",x,y,x*y); if(mein_zeichen=='-') printf(" %f - %f ist %f",x,y,x-y);
13. Oktober 200618 j Hi, ich dachte du wolltest folgendes machen: Eingabe: 1+2 Ausgabe: 3 Mit deinem Konstrukt liest du ja wieder nur ein Zeichen ein?!
13. Oktober 200618 j Ja so wars auch gemeint !!! Ich hab erst eine Aufforderung die x anfordert dann eine andere die y anfordert und die 3. sollte dann das zeichen beinhalten !!! Ich wollte nicht alles in eine Eingabe machen
13. Oktober 200618 j Könnte es so funktionieren ?Wieso probierst du es nicht einfach mal aus?! Compiler anwerfen und gucken, was passiert...
23. Oktober 200618 j Kommt zwar jetzt en bisschen verspätet aber ich konnte nicht früher schreiben. char mein_zeichen; steht in der Zeile 16 und als Fehler sagt er mir das ich in Zeile 16 einen Deklarationsfehler habe, was bedeutet das ?
23. Oktober 200618 j steht in der Zeile 16 und als Fehler sagt er mir das ich in Zeile 16 einen Deklarationsfehler habe, was bedeutet das ?Kommt drauf an. So aus dem Kontext gerissen, ist das nicht eindeutig zu sagen. Der Fehler steckt nicht zwangsläufig in der Zeile, in der der Compiler ihn meldet. Ich vermute, du hast davor schon irgendwelchen anderen Code. In C müssen alle Variablendeklarationen am Anfang eines Blocks stehen.
26. Oktober 200618 j So habe das mit dem Deklarationsfehler in den Griff bekommen !!! Jetzt habe ich allerdings ein anderes Problem. Da wo mein scanf("%c",&zeichen); Befehl dran wäre springt das Programm immer weiter, sodass ich gar nicht dazu komme ein Zeichen einzugeben ....weiß jemand einen Rat ?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.