Programm zur Berechnung der Tippmöglichkeiten beim Lotto



  • Hallo,

    ich brauche Hilfe, bin mitm meinem kleinen Programmier-Latein am Ende.

    Ich soll ein Programm zur Berechnung der Tippmöglichkeiten beim Lotto schreiben, mit Hilfe von einfachen if und for Schleifen.

    Mein Programm:

    #include <stdio.h>

    int main (void) {

    int i,j,k,l,m,n,zaehl;

    for (i = 1; i <= 49; i++) {
    for (j = i + 1; j <= 49; j++) {
    for (k = j + 1; k <= 49; k++) {
    for (l = k + 1; l <= 49; l++) {
    for (m = l + 1; m <= 49; m++) {
    for (n = m + 1;n <= 49; n++) {

    if (i != j){
    if (i != k){
    if (i != l){
    if (i != m){
    if (i != n){
    if (j != k){
    if (j != l){
    if (j != m){
    if (j != n){
    if (k != l){
    if (k != m){
    if (k != n){
    if (l != m){
    if (l != n){
    if (m != n){

    //printf("Zaehler %d %d %d %d %d %d\n",i,j,k,l,m,n);
    zaehl++;
    }}}}}}}}}}}}}}}
    }
    }
    }
    }
    }
    }
    printf("Tippmoeglichkeiten: %d ",zaehl);
    scanf("%\n");
    return 0;
    }

    Das Programm gibt sechs Möglichkeiten mehr aus (unter DEV-C), als es soll.
    Wo ist bloß der Fehler?
    Beim ausführen unter UNIX gibt es wiederum eine ganz andere zahl aus...

    Bin noch nicht solange dabei und für jeden kleinen Tipp dankbar!!

    Danke Stefan



  • Ohne mir dein Programm genau angeschaut zu haben:
    * Versuche es erstmal für 2 (oder 3) aus 49 und such dann den Fehler noch einmal
    * Aus deinen ganzen if's kannst du ein einziges machen mit &&

    Wenn du hier postest, benutze bitte code tags!



  • Die ganzen ifs sind überflüssig (immer zutreffend), guck dir die Laufbereiche der Schleifen an.
    Das Problem könnte darin liegen, dass du zaehl am Anfang nicht mit 0 initialisierst (das würde auch die unterschiedlichen Ausgaben und Windows und Unix erklären.)



  • Super vielen Dank euch!
    Der Fehler war tatsächlich, dass ich "zaehl" am Anfang nicht mit "0" initialisiert habe!


Anmelden zum Antworten