Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.
Geschrieben

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.

Geschrieben

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);

  • 2 Wochen später...
Geschrieben

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 ?

Geschrieben
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.

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...