Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

Ja das ist mir schon klar....ich habe jetzt gehört es geht irgendwie über eine if(getch();) verbindung ? Stimmt das ?

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.

Ich will ja am Anfang einfach nur mal + - * / rechnen und das auch nur mit zwei Zahlen !!! Nicht mit k lammern und so

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

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

  • 2 Wochen später...

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 ?

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.