Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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;
}
+
+
+
+
+
+
+
+