Schleifen für Anfänger



  • Hallo,

    ich möchte in C eine Schleife Programmieren. Das Ganze soll so aussehen:

    n=0
    Start der Schleife
    q_n berechnen
    q_(n+1) berechnen
    Falls q_(n+1)-q_n<5: Schleife beenden
    Sonst: n=n+1 und Schleife neu starten

    Ich hab noch nie was mit C programmiert, brauche das aber unbedingt in C.

    Mein Problem ist vor allem die Erhöhung des Index n in der Variablen. Ich kann wohl kaum schreiben q_n=... und beim nächsten Durchlauf ist klar, dass z.B. aus q_5 jetzt q_6 wird, oder?

    Danke! Gruß

    Philipp



  • nimm eine 'for' schleife

    int s;
    for (s=0; s<10; s++)
    {
       .... // s wird hochgezählt und ist hier 0...9
    }
    

    🙂



  • Wenn du alle Zwischenwerte später noch benötigst, mußt du sie in ein Array packen (und darauf achten, daß dieses groß genug ist). Wenn du nur am Endergebnis der Schleife interessiert bist, kannst du die Indizes ignorieren und die früheren Werte einfach überschreiben:

    //mit Arrays:
    double q[MAX_SIZE];
    int n;
    for( n=0 ; (n+1)<MAX_SIZE && q[n+1]-q[n]>=0.5 ; ++n)
    {
      q[n] = ...;
      q[n+1] = ...;
    }
    
    //ohne Arrays:
    double qn,qn1=0;
    do
    {
      qn=qn1;
      qn1=...;
    }
    while(qn1-qn>=0.5);
    


  • Wow, da schau einer her... C unterstützt seit C99 sogar for Schleifen! Ship it!



  • C++ Freak schrieb:

    Wow, da schau einer her... C unterstützt seit C99 sogar for Schleifen! Ship it!

    Soll ich dir ein kleines Geheimnis verraten - das konnte sogar schon K&R C 😃



  • CStoll schrieb:

    Soll ich dir ein kleines Geheimnis verraten - das konnte sogar schon K&R C

    Pssst, nicht so laut! Toll, jetzt weis es jeder... :p



  • da ich die Zwischenwerte nicht brauche, werde ich meine alten Werte einfach jedes Mal überschreiben. Eigentlich brauch ich dann gar keinen Zähler. Ich nehm in jedem Durchgang nur q_0 und q_1. So ist's viel einfacher.

    Danke nochmal.

    Gruß

    Philipp


Anmelden zum Antworten