Schleifen Problem



  • Hallo nochmal,

    1.Aufgabe:
    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 ?

    2.Aufgabe:
    Schreiben Sie ein Programm, das Zeichen von der Tastatur einliest. Das Einlesen soll so lange wiederholt werden, bis das Zeichen 'x' eingegeben worden ist. Das eingelesene Zeichen und der ASCII-Code dieses Zeichens sollen auf dem Bildschirm ausgegeben werden.
    Beispiel: bei Eingabe von 'F' soll ausgegeben werden:

    Das Zeichen F hat den ASCII-Code 41 Hex
    Hinweis: Die Initialisierung ist nötig.

    Jetzt al vom Verständniss her, bei 1.ten steht in der Musterlösung eine do-while bei der 2.ten eine while-Schleife. Wieso das denn? Außerdem funktioniert die Musterlösung nicht!

    char zeichen='a'; 
    while(zeichen!='x')
    {
    scanf("%c",&zeichen);
    printf("\n das zeichen %c hat den ASCII-Code %x Hex", zeichen, zeichen);
    }
    

    Irgendwie wir die Ausgabe bei mir zweimal ausgeführt. Kann mir einer erklären wieso?

    Gruß juniorcrew



  • mach doch mal ne do{}while(); schleife draus und stell mal sicher das du auch alle zeichen von stdin abholst, sonst geistert da evtl. noch was rum was du dann im nächsten durchlauf abholst was sicher nicht sinn und zweck der sache ist;)

    lg lolo



  • juniorcrew schrieb:

    Außerdem funktioniert die Musterlösung nicht!

    das sind immer die besten "Musterlösungen" fast so gut wie ein tut das nicht funzt :p



  • Also kann man i.A. sagen, das wenn man sowas in der Arte stehen hat:

    "...bis das Zeichen "?" eingegeben wird, sollen die Zeichen eingelesen werden...", benutze man am besten eine do-while schleife? Da man hier die Variable nicht initialisieren muss? Habe ich das richtig verstanden?
    Weil bei einer while-Schleife sollte man die Variable vorher besser initialisieren, damit dort auch alles passt und der nicht beim ersten Durchlauf die Schleife schon nicht mehr ausführt.

    Richtig?

    Gruß juniorcrew


Anmelden zum Antworten