einfache for schleife, ich packs net



  • hallo ihrs,

    hab da ein kleines problem.

    also, max_abst darf nicht grösser als 1,6mm sein, und s kenne ich nicht. wenn ich jetzt s solange hochzählen lasse bis meine bedingung max_abst>= 1,6 ist, brauche ich nur noch beide werte auslesen um weiter zu machen. Leider bekomm ich keine werte und auch keine fehlermeldung, s zählt hoch von 1 bis 100 und max_abst ist in jeder zeile 0,00000 .

    könnte mir einer sagen wo der fehler liegt???

    Entschuldigt wenn ich euch mit solchen lapalien nerve, aber ich versuch mir c selber beizubringen

    /*Berechnung des max_abstandes Plattenmitte zum Durchmesser*/
    
    float max_abstand (float b)
    
    {
    int s;
    float max_abst;
    
    for (s=1; s<=100; s=s++)
    {
    for (max_abst=0; max_abst>=1.6;)
    
    max_abst=(tan(((360/s)*3.141592654) / (4*180)))*pb;
    
    if (max_abst<1.6)
    break
    
    printf("\n%f",max_abst);
    printf("\n%i",s);
    }
    }
    

    mal vielen dank im vorraus

    Gruss Guido



  • max_abst darf nicht grösser als 1,6mm sein

    in deinem code steht das gegenteil.

    s=s++ ist unnoetig.
    s++ inkrementiert die variable, eine zuweisung an diese selbst ist also ueberfluessig.



  • hi spitzenbleichstift,

    die for schleife gibt doch den wert "wahr" zurück und läuft solange weiter bis max_abst>=1,6 "falsch" ist, oder????

    gruss Guido



  • Nein, die Schleife läuft so lange, wie der Ausdruck "max_abst>=1.6" wahr ist.

    Sprich:
    Laufe so lange, wie der Wert "max_abst" größer oder gleich 1,6 ist. Da er aber mit 0 initalisiert wird, ist er also weder größer noch gleich 1,6. Das bedeutet, das die Bedingung von vorneherein falsch ist und der Inhalt der Schleife kein einziges Mal durchlaufen wird.

    Ich würde mir zudem überlegen, ob da eine While Schleife mit 2 Bedingungen nicht besser geeignet wäre. Damit wird es ein bissken übersichtlicher. Irgendwie gefällt mir die If-Bedingung mit dem Break nicht....

    [edit]Ergänzungen[/edit]


Anmelden zum Antworten