Bis hundert rauf und 100 runter Zählen

3 Antworten

das runterzählen is das gleiche nur mit i-- glaube ich.. also dann machst du eben

(kann jz kein beispiel machen, kann bloß c++ und da is z.b. "printf" ein "cout" undso..

könntest du so ein Programm in c++ schreiben ?? bin nämlich nach 2 stunden minimal am ende und in c++ darf man die Aufgabe auch lösen

0
@Infosta

ich denke schon...^^ ist das für die schule, oder muss man sich irgendwie an was bestimmtes halten?

0
@DJFlashD

oder probier das von reddington aus, das sieht nicht schlecht aus xd (muss ich weniger arbeiten ;) )

0

Du brauchst zwei verschiedene Schleifen, jenachdem ob die Zahl größer oder kleiner als 100 ist (bei 100 wird nur 100 ausgegeben):

if(i <= 100)
{
    while(++i<100)
    {
         printf("Zahl %d\n", i);
    }
}
else
{
    int k = i-100;
    while(i-->k)
    {
         printf("Zahl %d\n", i);
    }
}

LG

    if( i < 100){
    while (i <= 100)
    {
        printf("Zahl %d\n", i);
        i++;

    }
    }else{
    for(i, i > i -100, i--){
    printf("Zahl %d\n", i);
}
}

Ich habe jz mal deine while-loop verwendet, aber du kannst stattdessen auch eine for-loop verwenden.

0
@Reddington

wie genau setzt man das ein ? also es wäre nett wen du das mal + den Anfang schickst ... sry aber bin neu in dem Thema und wenn ich meinen Anfang (zumindestens das was ich denke ) mit deinem verbinde wird es mir als falsch angezeigt

0
@Infosta
int main(int argc, char *argv[])
{
int i;
printf("Zahl eingeben:\n");
scanf("%d", &i);

HIER DEN IF-/SCHLEIFENTEIL EINSETZTEN

return 0;
}
0
@Reddington

also

include <stdio.h>

include <stdlib.h>

int main(int argc, char *argv[]) { int i; printf("Zahl eingeben:\n"); scanf("%d", &i);

if( i < 100){
    while (i <= 100)
    {
        printf("Zahl %d\n", i);
        i++;

    }
}else{
    for(i, i > i -100, i--);{
        printf("Zahl %d\n", i);
    }
}
return 0;

}

nun habe ich doch alles so gemacht wie du gesagt hast trotzdem wird mir an der for schleife also for(...) ein Fehler angezeigt expected ";" in for statement specifer

0
@Reddington

ich danke dir vielmals ;DDDDD sehr nett das du dir die zeit nimmst mir zu helfen aber meine letzte frage ist warum kommt wenn mann bspw 200 eingibt Zahl -2147483549 raus xD?

0
@Infosta

Du musst in der for-Schleife eine Hilfsvariable einfügen, weil sich sonst deine Endbedingung nie erfüllt und es immer weiter runterzählt.

}else{
    for(int j = i, j >= i -100, j--);{
        printf("Zahl %d\n", j);
    }
}
0
@Infosta
warum kommt wenn mann bspw 200 eingibt Zahl -2147483549 raus xD?

Weil die Abbruchbedingung i > i-100 fast immer erfüllt ist. Erst kurz vor der kleinsten darstellbaren Zahl wird der Ausdruck wegen Überlauf undefiniert. Dein Computer rechnet hier Modulo 2^32 und produziert einen sehr großen positiven Wert,. Dadurch wird > falsch und die Schleife bricht ab.

Jingles1992 hat schon verraten, wie man es korrekt macht.

0

Was möchtest Du wissen?