Do - While Problem



  • Guten Abend,

    ich habe hier folgende Aufgabenstellung:

    Schreiben Sie ein Programm, das eine Integer-Zahl von der Tastatur einliest und das zugehörigen ASCII-Zeichen und den Zahlenwert als Dezimalzahl auf dem Bildschirm ausgibt. Das Einlesen soll solange wiederholt werden, bis die Zahl „0“ eingegeben wird. Ist hier eine while- oder eine do-while-Schleife sinnvoller ?

    vorgegeben Lösung:

    char zahl;
    do
    {
    scanf("%d",&zahl);
    printf("Die Zahl %d hat den ASCII-Code %x Hex\n", zahl,zahl);
    }while(zahl != 0);
    

    meine Lösung:

    int zahl;
    do
    {
    scanf("%d",&zahl);
    printf("%d %c", zahl, zahl);
    }while(zahl != 0);
    

    Wieso steh in der Musterlösung char zahl? Muss ich das nicht int = zahl nehmen? UNd wieso ASCII-CODE mit %x, ist das nicht HEX?

    Gruß juniorcrew



  • juniorcrew schrieb:

    Ist hier eine while- oder eine do-while-Schleife sinnvoller ?

    eher do{}while();

    juniorcrew schrieb:

    Wieso steh in der Musterlösung char zahl? Muss ich das nicht int = zahl nehmen?

    char deshalb weil normale ascii zeichen immer in ein char passen, möglicherweise wär es aber sauberer das als int einzulesen und dann entweder die range zu testen oder in ein char casten?

    juniorcrew schrieb:

    UNd wieso ASCII-CODE mit %x, ist das nicht HEX?

    doch schon, kpl. was das soll du kannst aber ascii zeichen im unteren bereich schlecht darstellen da dass alles steuerzeichen sind, daher evtl. die ausgabe als hex, evtl. ist die ascii tabelle eueres lehrers in hex 😉

    lg lolo



  • Wieso denn eine do-while?

    es soll doch solange eingelesen werden bis zur 0 und nicht einschließlich der 0, oder habe ich das falsch verstanden?

    Gruß juniorcrew



  • juniorcrew schrieb:

    Wieso denn eine do-while?

    es soll doch solange eingelesen werden bis zur 0 und nicht einschließlich der 0, oder habe ich das falsch verstanden?

    Gruß juniorcrew

    do while , weil die Zahl erst innerhab der Schleife eingelesen werden muss und dann ausgewertet.
    😉



  • 😋 ich wäre fuer die while... Version:

    int main() {
    int zahl;
    while(scanf("%d",&zahl)&&zahl)
     printf("%d %x", zahl, zahl);
    }
    

Anmelden zum Antworten