Welche Schleife ist zu empfehlen?



  • Ich bin noch relativ neu in C und lese nebenbei ein C Buch, welche ich relativ gut finde. Es werde mehrere Schleifen Vorgestelle (While, Do-While, For ...)
    Ich versuche derzeit ein Problem in C nachzuprogramieren, welches wir in der Schule in Delphi gemacht haben.

    Nun aber zur Frage:

    Wie wuerdet ihr eine Schleife programmieren, die solange 2 Zufallszahlen generiert und addiert (Zwischen 0 und 100) bis das Ergebniss unter 100 liegt.

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main(void){
    int eq1;
        do{
        int count = 0, zz1, zz2, rz;
    
        srand(time(NULL));
        count++;
        zz1 = rand() % 100, zz2 = rand() % 100;
    
        if (eq1 < 100){
                    eq1 = zz1 + zz2;
        printf("%d + %d = %d\n ", zz1, zz2, eq1);}
        }
        while( (eq1 > 100) );
    return 0;
    }
    


  • ^^ weil alles in der schleife passiert, würde ich eine for(endlos) nehmen und mit break raushüpfen, wenn das ergebnis da ist. geht bestimmt auch mit allen anderen schleifen, aber so finde ichs einfacher. do...while ist aber auch gut.
    btw, das 'srand(...)' muss aus der schleife raus.
    🙂



  • Das Problem ist, dass es so nicht funktioniert, und er mir da Total den Schwachsinn bei berechnet...



  • #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main(void){
        int eq1;
        srand(time(NULL));
        do {
          int zz1, zz2;
          zz1 = rand() % 100;
          zz2 = rand() % 100;
    
          eq1 = zz1 + zz2;
    
          printf("%d + %d = %d\n ", zz1, zz2, eq1);
        } while (eq1 > 100);
    


  • "Zwischen 0 und 100"
    Also 1 + rand() % 99

    und "bis das Ergebniss unter 100" also solange wie das Ergebnis >= 100 ist.

    Schau dir nochmal die Klammern an; Einrücken kann helfen...



  • Wow danke



  • t0b1z schrieb:

    Nun aber zur Frage:

    Wie wuerdet ihr eine Schleife programmieren, die solange 2 Zufallszahlen generiert und addiert (Zwischen 0 und 100) bis das Ergebniss unter 100 liegt.

    Geht es nur darum, zwei zufällige Zahlen zu bekommen? Dann gar nicht, d.h. würd ich ohne Schleife machen.

    Gruß,
    B.B.


Anmelden zum Antworten