![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Stammuser
![]() Registriert seit: 14.02.2007
Alter: 19
Beiträge: 491
|
Hey habe einen kleinen Taschenrechner in C Programmiert und wollte wissen wie ich es machen kann das er am Ende fragt ob der Anwender nochmal will ?
der taschenrechner ist in dem Stil aufgebaut : Code:
#include <stdio.h>
#include <ctype.h>
main() {
char eingabe,nochmal;
double zahl=0.0,ergeb=0.0;
printf("\tDestructions Taschenrechner haben sie viel Spass damit !!\n");
printf("Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren : ");
eingabe=getchar();
switch(toupper(eingabe)) {
case 'D':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb/zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'M':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb*zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'A':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'S':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb-zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
printf("\tVielen Dank für die benutzung von\n");
printf("\tDestructions Taschenrechner");
}
getchar();
getchar();
}
|
|
|
|
|
|
|
#2 (Direktlink) |
|
Stammuser
![]() Registriert seit: 14.02.2007
Alter: 19
Beiträge: 491
|
Habe ihn noch ein bischen geändet ^^
Code:
#include <stdio.h>
#include <ctype.h>
main() {
char eingabe,nochmal;
double zahl=0.0,ergeb=0.0;
printf("\tDestructions Taschenrechner haben sie viel Spass damit !!\n");
printf("Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren : ");
eingabe=getchar();
switch(toupper(eingabe)) {
case 'D':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb/zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'M':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb*zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'A':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'S':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb-zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
printf("\n\tVielen Dank für die benutzung von");
printf("\n\tDestructions Taschenrechner");
default:
printf("BITTE DEN ANFANGSBUCHSTABEN NUR EINGEBEN !");
}
getchar();
getchar();
}
|
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 18.01.2004
Beiträge: 645
|
pack das ganze in eine while - Schleife, dann kannst du das so oft wie du willst nochmal machen.
__________________
mfg, powerweb |
|
|
|
|
|
#4 (Direktlink) |
|
Stammuser
![]() Registriert seit: 14.02.2007
Alter: 19
Beiträge: 491
|
Jo das gleiche hab ich mir auch gedacht ! aber gehts auch anders ?
PS.: So ungefähr : ? Code:
#include <stdio.h>
#include <ctype.h>
main() {
double zahl=0.0,ergeb=0.0;
printf("\tDestructions Taschenrechner haben sie viel Spass damit !!\n");
printf("Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren : ");
eingabe=getchar();
while(eingabe != 0) {
switch(toupper(eingabe)) {
case 'D':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb/zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'M':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb*zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'A':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'S':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb-zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
printf("\n\tVielen Dank für die benutzung von");
printf("\n\tDestructions Taschenrechner");
break;
default:
printf("BITTE DEN ANFANGSBUCHSTABEN NUR EINGEBEN !");
break;
}
printf("(D)ividieren , (M)ultiplizieren , (D)ividieren , (A)ddieren oder (S)ubtrahieren ? Um zu beenden bitte 0 eingeben ! ");
eingabe=getchar();
}
}
|
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 18.01.2004
Beiträge: 645
|
funktionierts? Wenn ja, dann ists richtig.
__________________
mfg, powerweb |
|
|
|
|
|
|
#6 (Direktlink) |
|
Stammuser
![]() Registriert seit: 14.02.2007
Alter: 19
Beiträge: 491
|
Nein es fumktioniert nicht -.-
bitte um antwort ! Letzter versuch war : Code:
#include <stdio.h>
#include <ctype.h>
main() {
char eingabe;
double zahl=0.0,ergeb=0.0;
printf("\tDestructions Taschenrechner haben sie viel Spass damit !!\n");
printf("Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren ( 0 um zu beenden ): ");
eingabe=getchar();
do {
switch(toupper(eingabe)) {
case 'D':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb/zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'M':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb*zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'A':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
case 'S':
printf("OK , bitte die erste Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb+zahl;
printf("OK , bitte die zweite Zahl eingeben : ");
scanf("%lf",&zahl);
ergeb=ergeb-zahl;
printf("Alles klar das Ergebniss ist %15lf",ergeb);
break;
default:
printf("\nBITTE NUR DEN ANFANGSBUCHSTABEN EINGEBEN !");
break;
}
printf("\nWollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren oder (E)nde : ");
eingabe=getchar();
}while(eingabe != 'E') ;
printf("\n\tVielen Dank für die benutzung von");
printf("\n\tDestructions Taschenrechner");
getchar();
getchar();
}
Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren oder (E)nde : BITTE NUR DEN ANFANGSBUCHSTABEN EINGEBEN ! Wollen sie (D)ividieren , (M)ultiplizieren , (A)ddieren oder (S)ubtrahieren oder (E)nde : ____________ Und die Ergebnisse sind auch falsch es wird nach jedem Durchgang größer obwohl ich die selbe Rechnung eingebe ! |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 18.01.2004
Beiträge: 645
|
Also, das mit dem Ergebnis kann ich dir erklären:
Du setzt innerhalb der while - Schleife die Ergebnis - Variable ja nie zurück... und da du jede Berechnung wieder mit der Ergebnis - Variable durchführst (also, addieren, subtrahieren, etc...) wird das Ergebnis natürlich immer größer. Schreibe am Ende der switch - Anweisung einfach ergeb = 0; die do - while Schleife ist hier keine gute Idee: Was ist wenn der Benutzer gleich als erstes beenden möchte? Was gibts du der Reihe nach ein, damit diese Ausgabe erscheint? Kommt diese Ausgabe direkt beim Starten oder erst nach einer Berechnung?
__________________
mfg, powerweb |
|
|
|
|
|
#8 (Direktlink) |
|
Stammuser
![]() Registriert seit: 14.02.2007
Alter: 19
Beiträge: 491
|
hm ich verstehs einfach nicht aber ist eig. jetzt auch net mehr so wichtig -.-' bin jetzt 100 Seiten weiter xD xD d.h. neue themen werde das eh nie wiederbrauchen vielen dank trotzdem !
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|