Hey Com =),
ich hätte eine kleine Frage an die User, die sich vllt mit C++ beschäftigen.
Wir haben eine kleine Zusatzaufgabe bekommen, die wir doch bitte zu Hause alleine lösen sollen.
Hier der Code"Dodon, der Märchenkönig, nahm bei seinem Feldzug 70 Feinde
gefangen, die er in 70 Einzelzellen steckte. An seinem Geburtstag
sollten einige freigelassen werden, und zwar nach einem ganz eigenartigen
Verfahren (vom Hofmathematiker ausgedacht): Im einem
ersten Durchgang werden alle Zellentüren geöffnet, in einem zweiten
Durchgang wird jede zweite Tür wieder geschlossen. Im dritten
Durchgang wird jede dritte Tür, wenn sie offenstand, geschlossen,
und wenn sie geschlossen war, geöffnet. Und so geht es im vierten,
fünften,... bis zum 70. Durchgang weiter. Die Frage ist, welche
Türen schließlich offenstanden, als der Geburtstag des Königs
anbrach."
Funktionieren tut an sich alles. Nur die Ausgabe ist fehlerhaft glaube ich!? Unsere Lehrerin hat die ersten 3 Durchläufe angegeben:Code://IT11b //Datum 18. Dez. 2011 #include <iostream> #include <cmath> #include <cstdlib> #include <conio.h> using namespace std; int main() { int z=2; bool Zelle[71]; //1. Durchgang //Alle Zelltüren aufschließen cout<<"Durchlauf 1"<<endl; for(int i=0; i<71; i++) { Zelle[i] = true; cout<<"0"; } cout<<endl; //Durchgänge for(int durchgang = 2; durchgang <= 71; durchgang++) { for(int i=1; i<71; i+=durchgang) { if(durchgang % 2 == 0) //gerade Durchgänge { Zelle[i] = false; //zuschließen } else //Ungerade Durchgänge { Zelle[i] = !Zelle[i]; //invertieren } } // Ausgabe cout<<"Durchlauf " <<z++<<endl; for(int i=0; i<71; i++) { if(Zelle[i]==true) cout<<'O'; else cout<<'x'; } cout<<endl; system("PAUSE"); } return 0; }
Durchlauf 1
00000000000000000............
Durchlauf 2
0x0x0x0x0x0x0x0x0x..........
Durchlauf 3
0xxx000xxx000xxx000...........
usw
Bei mir kommt aber das raus:
Fehlerhaft ist Durchlauf 3
Kann mir evtl jmd. auf die Sprünge helfen!? Dürfte doch eig garnicht sein!?
Liebe Grüße
PS: O steht für offene Zellentür, X für geschlossene Zellentür