Zitat von
Binärbaum:
@Robert Marquardt:
Nimms mir bitte nicht übel, ich würde es auch lieber in Delphi machen, aber scheinbar haben die in der Uni von Dust Signs kein Delphi
Delphi lernen wir an unserer FH nicht, nur C, C++, Java etc. Alles, nur kein Delphi
. Da wir uns im ersten und zweiten Semester ausschließlich mit C befassen wird eine Delphilösung wohl kaum genügen
(wär mir persönlich auch lieber).
Habs jetzt anders lösen können:
Code:
#include <stdio.h>
int matrosen[30];
int zaehler = 0; //Wenn eine Runde fertig: bei welchem Wert wurde aufgehört zu zählen
int anzahl_matrosen_uebrig = 30;
int MatrosenFuellen() {
int i; //Schleifendummy
for (i = 0; i < anzahl_matrosen_uebrig; i++) {
matrosen[i] = i + 1;
}
}
int JederSiebteRaus() {
int i; //Schleifendummy
printf("Neue Runde...\n");
for (i = 0; i < 30; i++) {
if (matrosen[i] != 0) { //Matrose noch da
zaehler++;
if (zaehler == 7) {
zaehler = 0;
printf("Matrose #%d fliegt...\n", matrosen[i]);
matrosen[i] = 0; //Matrose "löschen"
anzahl_matrosen_uebrig--; //Ein Matrose weniger
}
}
}
printf("Wir haben bei %d aufgehört zu zählen.\n", zaehler);
}
int LetzterMatrose() {
int i; //Schleifendummy
for (i = 0; i < 30; i++) {
if (matrosen[i] != 0) {
return matrosen[i];
}
}
}
int main() {
MatrosenFuellen(); //Initialisieren
printf("Lustiges Matrosenfliegen\n");
printf("========================\n\n");
while (anzahl_matrosen_uebrig > 1) {
JederSiebteRaus();
printf("Noch %d Matrosen übrig\n", anzahl_matrosen_uebrig);
}
printf("Ãœbrig ist Matrose #%d\n", LetzterMatrose());
return 0;
}
Danke trotzdem für eure Hilfe
Dust Signs