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 startenIch 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