tk01 Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 Hallo, wie kann ich diese Schleife ausgeben? a. 1, -2, 3, -4, 5, -6,... -50 b. 1, 2, 4, 7, 11, 16,....bis Wert > 300 c. 1, 1.1, 1.2, 1.3, ... 3 d. 1,2,3,11,12,13,21,22,23,...,91,92,93 Ich grieg das nicht so hin, dass die Schleifen sich abwechseln. Zitieren
Guybrush Threepwood Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 Was meinst du mit abwechseln? Überleg dir einfach nach welchen mathematischen Regeln die Zahlenfolgen aufgebaut sind Zitieren
tk01 Geschrieben 2. Mai 2009 Autor Geschrieben 2. Mai 2009 Guybrush Threepwood schrieb: Was meinst du mit abwechseln? Überleg dir einfach nach welchen mathematischen Regeln die Zahlenfolgen aufgebaut sind ich brauche doch 2 for-schleifen um a) auszugeben. Habe einmal für x die positiven zahlen deklariert und für y die negativen. x ist eine for-schleife und y die zweite. Habe nur kein Plan, wie ich die 2 zusammenfürhren kann, weil meine console nur die x-schleife ausgibt. (1, 3, 5, 6,...49) Zitieren
Enno Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 Du brauchst nur 1 for Schleife. evtl. musst du einfach in 1 Schleife 2 mathematische Operationen durchführen: a = 1 for { a (+1 *-1) a ist hier -2 a (*-1 +1) a ist hier 3 } Zitieren
tk01 Geschrieben 2. Mai 2009 Autor Geschrieben 2. Mai 2009 Enno schrieb: Du brauchst nur 1 for Schleife. evtl. musst du einfach in 1 Schleife 2 mathematische Operationen durchführen: a = 1 for { a (+1 *-1) a ist hier -2 a (*-1 +1) a ist hier 3 } ok danke ich habe ja dann hier sowas stehen: for(x=1; x<=50; x....) bei dem x... was muss denn da dann rein?? da drunter kommt ja dann auch noch der printf befehl. Zitieren
Enno Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 for (x=1; x<=50;) {print x x = X+1 x = x * -1 print x x = x * -1 x = x + 1 } IMHO musst Du nicht zwingend die Schritte in der forschleife mitangeben. Du kannst wi ehier das X ja auch innerhalb der Schleife verändern. im Übrigen gibt es noch einiges mehr an Schleifen. Hier böte Sich z.B. auch eine do-while an. Tu solnage bis eine Bedingung erfüllt ist. Zitieren
tk01 Geschrieben 2. Mai 2009 Autor Geschrieben 2. Mai 2009 Enno schrieb: for (x=1; x<=50;) {print x x = X+1 x = x * -1 print x x = x * -1 x = x + 1 } IMHO musst Du nicht zwingend die Schritte in der forschleife mitangeben. Du kannst wi ehier das X ja auch innerhalb der Schleife verändern. im Übrigen gibt es noch einiges mehr an Schleifen. Hier böte Sich z.B. auch eine do-while an. Tu solnage bis eine Bedingung erfüllt ist. { int x; for (x=1; x<=50;) {printf("%x",x = x+1,x = x * -1); printf ("%x",x = x * -1,x = x + 1); } } So sieht zurzeit mein Kunstwerk aus, welches natürlich nicht klappt. Mit voller Fehler bestückt, aber ich denke als totaler Anfänger ist das keine schande. Zitieren
Guybrush Threepwood Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 for (int i=1; i<=50; ++i) { if (i%2) printf("%i,",i*-1); else printf ("%i,"i); }[/PHP] oder [PHP]for (int i=1; i<50; ++i) { printf("%i,%i,",i++, i*-1); } letzteres wäre dann in der Art wie du es anscheined vor hattest Zitieren
flashpixx Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 Wie wäre es denn mit (-1)^(i%2) * (i+1) für i=0 bis 50 Phil Zitieren
tk01 Geschrieben 2. Mai 2009 Autor Geschrieben 2. Mai 2009 (bearbeitet) Guybrush Threepwood schrieb: for (int i=1; i<=50; ++i) { if (i%2) printf("%i,",i*-1); else printf ("%i,"i); }[/PHP] oder [PHP]for (int i=1; i<50; ++i) { printf("%i,%i,",i++, i*-1); } letzteres wäre dann in der Art wie du es anscheined vor hattest danke das erste ist genau richtig!! das zweite funktioniert bei mir gar nicht. mal schaun ob ich die anderen hinbekomme.^^ Bearbeitet 2. Mai 2009 von tk01 Zitieren
tk01 Geschrieben 2. Mai 2009 Autor Geschrieben 2. Mai 2009 flashpixx schrieb: Wie wäre es denn mit (-1)^(i%2) * (i+1) für i=0 bis 50 Phil Du meinst mit dem printf? Was ist denn nochmal %2? Zitieren
flashpixx Geschrieben 2. Mai 2009 Geschrieben 2. Mai 2009 tk01 schrieb: Du meinst mit dem printf? for(unsigned int i=0; i < 50; i++) sprintf("%i", pow(-1, i%2) * (i+1)); So sollte ca der Code aussehen tk01 schrieb: Was ist denn nochmal %2? Modulo Operator (Restanteil der ganzzahlige Division) Außerdem ist Dein Problem kein programmatisches, sondern ein algorithmisches. Bitte schreibe Dir mal auf einem Blatt Papier auf, was der Ausdruck (-1)^modulo(i,2) * (i+1) bzw (-1)^(i%2) * (i+1) für die Zahlen 0 bis 49 liefert Phil Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.