Pamina Geschrieben 15. November 2009 Geschrieben 15. November 2009 Hallo, ich brauche dringend eure Hilfe, ich habe gerade mit C++ angefangen (hatte erst 3Vorlesungen) und nun müssen wir eine Hausaufgabe abgeben, und die eine Aufgabe klappt irgendwie überhaupt nicht und ich muss das heute abend abgeben. Die Aufgabe lautet: 5. Aufgabe Beim Gesellschaftsspiel "Die Böse Sieben" sitzen die Teilnehmer im Kreis und zählen reihum. Jede Zahl, die durch 7 teilbar ist oder die 7 als Zier enthält, muss übersprungen werden. Schreiben Sie ein Programm, welches eine Zahl einliest und überprüft, ob diese Zahl übersprungen werden soll. mir ist klar, dass ich das irgendwie in nen String bauen muss und dann ne Schleife, aber es klappt einfach nicht. Kann mir irgendwer bitte helfen?? Liebe Grüße Pamina Zitieren
robotto7831a Geschrieben 15. November 2009 Geschrieben 15. November 2009 Hallo, wie sieht dein bisheriger Code aus? Frank Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 /* Übungsblatt 1 Aufgabe 5; Programm zu Spiel "Die Böse Sieben" */ #include <iostream> using namespace std; int main() { cout <<"Bitte geben Sie eine Zahl ein."<< endl; int x; // Eingabe der zu überprüfenden Zahl cin >> x; //Festlegung, dass die Zahl übersprungen werden muss, wenn sie durch 7 teilbar ist if (x%7==0){ cout <<"Die Zahl" <<x<< " muss uebersprungen werden." << endl; return 0; } else { cout <<"Die Zahl muss nicht uebersprungen werden"<< endl; } //Ende des Programms wenn die Zahl durch 7 teilbar ist //Festlegung, dass die Zahl übersprungen werden muss, wenn die 7 enthalten ist if (x { cout <<"Die Zahl" <<x<< "muss uebersprungen werden" << endl; return 0; } else { cout <<"Die Zahl muss nicht uebersprungen werden"<< endl; return 0;} } [/PHP] das hab ich bis jetzt aber weiter gehts irgendwie nicht Zitieren
robotto7831a Geschrieben 15. November 2009 Geschrieben 15. November 2009 Also eine Möglichkeit wäre, die Variable x (warum eigentlich x nimm sprechende Namen) in einen String zu konvertieren (itoa). Und dort dann von 1 bis Länge des Strings jeweils ein Zeichen raus holen und prüfen ob es eine sieben ist. Frank Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 bei uns heißen die irgendwie immer x keine ahnung, das problem ist, dass ich die länge der eingegebenen zahl ja nicht weiß und #include <iostream> #include <string> using namespace std; int main () { string str ("Test string"); cout << "Die Länge vom string ist " << str.length() << " Zeichen." endl; return 0; }[/PHP] klappt irgendwie nicht, danach könnte ich dann nen Modulo drüber laufen lassen, aber wie lese ich ein, dass er bei 1000 zahlen mit modulo 10,100, 1000 arbeiten, bei 10000 mit 10, 100, 1000, 10000 usw. ???? Zitieren
robotto7831a Geschrieben 15. November 2009 Geschrieben 15. November 2009 Die Stringlänge kannst Du doch, wie bereits von dir angegeben, mit str.length() ermitteln. Frank Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 ja schon aber das programm bricht sofort ab Zitieren
robotto7831a Geschrieben 15. November 2009 Geschrieben 15. November 2009 Wie sieht der Quellcode aus? Frank Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 mh ich hab aufgegeben, trotzdem danke!! Zitieren
T3D Geschrieben 15. November 2009 Geschrieben 15. November 2009 ich glaube du hast die aufgabe auch missverstanden - ich kenn das spiel, denn das is nen trinkspiel du gibst eine zahl 2-9 an dann werden der reiherum die zahlenreihe hochgezaehlt bis einer einen fehler macht. es werden alle zahlen nicht genannt die als teiler die zahl die du eingegeben hast sind oder die zahl direkt darin vorkommt. bei ner 6 waere das also 1,2,3,4,5,7,8,9,10,11,13,14,15,17,19 ... usw das heist die zahl die du einliest is immer nur eine ziffer macht ueberrigens richtig fun wenn man ein im turm hat Ted Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 Nee laut " Schreiben Sie ein Programm, welches eine Zahl einliest und überprüft, ob diese Zahl übersprungen werden soll." sollen verschiedene zahlen eingegenen werden. Das problem ist, dass meine Komilitonin jetzt stress macht (abgabe ist in 2 stunden) sie hat mir vorhin erst gesagt das sie es nicht hinbekommen hat (wir haben die aufgaben aufgeteilt gehabt) ich musste heute leider arbeiten, daher konnte ich mich auch nicht weiter damit beschäftigen. Ich weiß, dass das dreist ist, aber hat nicht irgendwer von euch so ein programm rumfliegen? ich krieg es einfach nicht gebacken bitte helft mir! Zitieren
Klotzkopp Geschrieben 15. November 2009 Geschrieben 15. November 2009 danach könnte ich dann nen Modulo drüber laufen lassen, aber wie lese ich ein, dass er bei 1000 zahlen mit modulo 10,100, 1000 arbeiten, bei 10000 mit 10, 100, 1000, 10000 usw. ???? Du brauchst keine Strings. Bestimme erst den Divisionrest mit 10. Wenn dabei sieben rauskommt, bist du fertig. Wenn nicht, teile die Zahl durch 10 (Ganzzahldivision, also Rest ignorieren) und prüf nochmal, solange, bis deine Zahl 0 ist. Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 mh also muss ich das ding in ne schleife schreiben in eine while schleife? sorry hab wirklich gerade erst mit c++ angefangen, das ist gerade nur noch chaos in meinem kopf int i = 1; do { std::cout << i++ << std::endl; } while ((i -7)%10); [/PHP] so oder wie? Zitieren
Klotzkopp Geschrieben 15. November 2009 Geschrieben 15. November 2009 so oder wie?Nein, das hat mit dem, was ich oben beschrieben habe, so gut wie nicht zu tun. Probier doch mal aus, was folgender Code tut: int zahl = 12345; while( zahl > 0 ) { std::cout << zahl % 10; zahl /= 10; }[/code] Zitieren
Pamina Geschrieben 15. November 2009 Autor Geschrieben 15. November 2009 mhm danke, hat irgendwie alles nicht geklappt abgabezeit vorbei, war wohl einfahc zu blöd danke trotzdem Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.