Taschenrechner
-
Ich habe doch nicht gesagt das dein Programm schlecht ist nur es ist doch übersichtlicher für IHN.
Warum sollte das Programm nicht machen was es verlangt?
Er sagt doch er will eine Zahl mit einer Zahl addieren und das Ergebnis dann multiplizieren.
-
langeweile schrieb:
Kann dein Prog auch: 3/6*5?
Nee, kann seins nicht!!!
3/6*5=2280,00000000
-
F4bio< schrieb:
Ich habe doch nicht gesagt das dein Programm schlecht ist nur es ist doch übersichtlicher für IHN.Warum sollte das Programm nicht machen was es verlangt?
Er sagt doch er will eine Zahl mit einer Zahl addieren und das Ergebnis dann multiplizieren.
Ich will es aber gerne in einem Term rechnen!!!
Sieht schöner aus!!!!!
-
Die Eingabe erfolgt nicht so wie er's möchte.-Das hat er dir eigentlich auch schon geschrieben.
Ich vermute mal, dass du mit Endlosschleife folgendes meintest:
#include <stdio.h> #include <string.h> int main(void){ char rechnung[64],_operator; float erster_wert,zweiter_wert,resultat; int mult,cnt; do{ //Rechnung einlesen printf("Rechnung: "); fflush(stdin); gets_s(rechnung,sizeof(rechnung));cnt=(int)strlen(rechnung)-1; //Zweiter Operand extrahieren mult=1; zweiter_wert=0; while(rechnung[cnt]>='0'&&rechnung[cnt]<='9'){ zweiter_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Operator extrahieren _operator=rechnung[cnt]; cnt--; //Erster Operand extrahieren mult=1; erster_wert=0; while(cnt>=0){ erster_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Resultat berechnen switch(_operator){ case '+': resultat=erster_wert+zweiter_wert; break; case '-': resultat=erster_wert-zweiter_wert; break; case '*': resultat=erster_wert*zweiter_wert; break; case '/': resultat=erster_wert/zweiter_wert; break; } //Resultat ausgeben printf("%f%c%f=%f\n<Q> -> Quit\n",erster_wert,_operator,zweiter_wert,resultat); }while(getchar()!='Q'); }
-
Er hat auch nicht verlangt das das Programm das kann warum sollte ich dann die funktion einbauen.
-
Danke!!!
Ich habs FAST so wie ich es möchte:
(Hab noch einen kleinen Schönheitsfehler korigiert)Blablabla
Was muss ich verändern, damit man am Ende (Da wo "Rechnung: " steht) nur noch Q drücken muss, damit das Programm geschlossen wird???
-
s.o.
-
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ char rechnung[64],_operator; float erster_wert,zweiter_wert,resultat; int mult,cnt; do{ system("CLS"); //Rechnung einlesen printf("Rechnung: "); fflush(stdin); gets(rechnung);cnt=(int)strlen(rechnung)-1; //Zweiter Operand extrahieren mult=1; zweiter_wert=0; while(rechnung[cnt]>='0'&&rechnung[cnt]<='9'){ zweiter_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Operator extrahieren _operator=rechnung[cnt]; cnt--; //Erster Operand extrahieren mult=1; erster_wert=0; while(cnt>=0){ erster_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Resultat berechnen switch(_operator){ case '+': resultat=erster_wert+zweiter_wert; break; case '-': resultat=erster_wert-zweiter_wert; break; case '*': resultat=erster_wert*zweiter_wert; break; case '/': resultat=erster_wert/zweiter_wert; break; } //Resultat ausgeben printf("Resultat: %f%c%f=%f\n-----\n<Q> -> Quit\n<ENTER> -> Next\n< >\b\b" ,erster_wert,_operator,zweiter_wert,resultat); }while(getchar()!='Q'); }
-
Dein Taschenrechner rechnet nicht korrekt! Beschäftige dich mit Rekursivem Abstieg und du kriegst ohne Probleme noch: Klammern, Punkt-Vor-Strich in deinen Rechner eingebaut
Vielleicht ist ja jemand so frei dir dafür ein Beispiel zu posten, denn ich habe gerade leider keins.
Viel Erfolg!
-
Ich hatte dem mal eine bessere Oberfläche gegeben!!!
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char rechnung[64],_operator; float erster_wert,zweiter_wert,resultat; int mult,cnt; do{ system("CLS"); printf("Wilkommen bei Rechnomat!!!\n\n\n\n"); //Rechnung einlesen printf("Bitte geben sie ihren Term ein und bestaetigen mit <Enter>: \n\n"); fflush(stdin); gets(rechnung);cnt=(int)strlen(rechnung)-1; //Zweiter Operand extrahieren mult=1; zweiter_wert=0; while(rechnung[cnt]>='0'&&rechnung[cnt]<='9'){ zweiter_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Operator extrahieren _operator=rechnung[cnt]; cnt--; //Erster Operand extrahieren mult=1; erster_wert=0; while(cnt>=0){ erster_wert+=(rechnung[cnt]&0x0f)*mult; mult*=10; cnt--; } //Resultat berechnen switch(_operator){ case '+': resultat=erster_wert+zweiter_wert; break; case '-': resultat=erster_wert-zweiter_wert; break; case '*': resultat=erster_wert*zweiter_wert; break; case '/': resultat=erster_wert/zweiter_wert; break; } //Resultat ausgeben printf("\nDas Ergebnis von: %f %c %f\nIst gleich: %f\n\n\n\n\n"); printf("Druecken sie q zum Beenden.\n"); printf("Wenn sie Weitermachen moechten druecken bitte Enter.\n\n",erster_wert,_operator,zweiter_wert,resultat); }while(getchar()!='q'); }