1. Klassen
Revision 5:5a933dd926c4, committed 2020-04-28
- Comitter:
- robertbuc
- Date:
- Tue Apr 28 10:20:41 2020 +0000
- Parent:
- 4:9ba8639f8c01
- Commit message:
- .
Changed in this revision
Rbuch_3_uebung18_21_04_2020.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/Rbuch_3_uebung18_21_04_2020.cpp Tue Apr 21 18:02:24 2020 +0000 +++ b/Rbuch_3_uebung18_21_04_2020.cpp Tue Apr 28 10:20:41 2020 +0000 @@ -6,7 +6,7 @@ Zusatz für Fortgeschrittene: Bei Falscheingaben (Buchstaben, Sonderzeichen, etz.) soll der User darüber informiert werden. -Bei den Versuchen >10 soll eine führende Null mit ausgegeben werden (also statt 1,2,3 soll 01, 02 ,03 ausgegeben werden.) +Bei den Versuchen <10 soll eine führende Null mit ausgegeben werden (also statt 1,2,3 soll 01, 02 ,03 ausgegeben werden.) Bei der wiederholten Eingabe einer Zahl soll der User darüber informiert werden. Der User soll den Bereich in dem die Zufallszahl liegen soll, selbst definieren. Der User soll informiert werden, wenn sein Versuch ausserhalb des definierten Bereichs liegt. @@ -15,11 +15,38 @@ *******************************************************************************/ #include <iostream> -//#include <string> //kontrolle ob zahl #include <time.h> #include <stdlib.h> +#include <string> + using namespace std; + +int zahlencheck(string streingabe,int nurzahlen) +{ + char x =0; + do + { + if(streingabe[x] >= '0' && streingabe[x] <= '9') + { + x++; + nurzahlen=0; + } + else + { + cout<<"Bitte nur Z A H L E N eingeben\n"; + nurzahlen=1; + break; + } + + }while (x<streingabe.length()); //|| wrong==1 + return (nurzahlen); +} + + + + + int main(void) { int ug; //untergrenze @@ -31,40 +58,63 @@ cout << "Bitte erraten sie die gesuchte Zahl, sie befindet sich zwischen " << ug << " und " << og <<endl; srand(time(NULL)); - int zahl = ug + rand()%(og-ug); + int i=1; + string streingabe; int eingabe=0; - int i=1; - do{ + - printf("Ihr %d. Versuch: ",i); - cin >> eingabe; + do{ + if(i<10) //Versuche + { + printf("Ihr 0%d. Versuch: ",i); + } + else + { + printf("Ihr %d. Versuch: ",i); + } + cin >> streingabe; + //cin.ignore(numeric_limits<streamsize>::max(), '\n' ); + cin.clear(); + int x=0; - if(eingabe < ug || eingabe >og) - { - printf("Die eingegebene Zahl befindet sich außerhalb des von ihnen definierten Bereichs.\n"); - } + int wrong = zahlencheck(streingabe,wrong); // keine Buchstaben, keine Sonderzeichen - else if(eingabe < zahl) - { - printf("Die gesuchte Zahl ist groeßer\n"); - } - else if(eingabe > zahl) + + if(wrong==0) //Ausgabe { - printf("Die gesuchte Zahl ist kleiner\n"); - } - else if(eingabe == zahl) - { - printf("Glückwunsch die von Ihnen eingegebene Zahl (%d) stimmt mit der gesuchten Zahl überein. \n", eingabe); + eingabe = std::stoi(streingabe); //string auf int + + if(eingabe < ug || eingabe >og) + { + printf("Die eingegebene Zahl befindet sich außerhalb des von ihnen definierten Bereichs.\n"); + } + else if(eingabe < zahl) + { + printf("Die gesuchte Zahl ist groeßer\n"); + } + else if(eingabe > zahl) + { + printf("Die gesuchte Zahl ist kleiner\n"); + } + else if(eingabe == zahl) + { + printf("Glückwunsch die von Ihnen eingegebene Zahl (%d) stimmt mit der gesuchten Zahl überein. \n", eingabe); + } } - i++; }while(eingabe != zahl); - - return 0; } + + + + + + + +