Einzelnen Beitrag anzeigen

Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#12

Re: Problem mit simplem C-Quellcode

  Alt 23. Feb 2005, 21:24
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
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat