Ascii code tabelle ausgeben C



  • Hallo alle miteinander habe folgendes Problem:

    Schreiben Sie ein Programm, das eine ASCII-Code Tabelle fuer die druckbaren
    Zeichen (ASCII-Codes von 32 - 255) in der unten angegebenen Art erstellt.
    Ascii-Code-Tabelle

    ES SOLL SO AUSSEHEN: http://www.bildershare.de/?v=unbenannt-1295645198.png

    Wir sollen das mit Schleifen schreiben ... kann mir bitte jemand helfen??
    habe so angefangen:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int sterne,
            zahlenzeile;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            printf(" %d", zahlenzeile);}
        printf("\n");
        for(sterne=0; sterne<=55; sterne++){
            printf("*");}
    
        return 0;
    }
    

    Bitte um rasche Antwort
    Mfg René



  • Woran hapert es denn?



  • Ich weiß nicht wie ich die Ausgabe (Formatierung) mit schleifen machen soll ... dachte da schon an 2 ineinander geschachtelte for schleifen...
    Mfg



  • Mach doch eine Zählervariable, die bei 32 beginnt. Immer wenn sie durch 20 teilbar ist, fange eine neue Zeile an.



  • Hello World schrieb:

    Schreiben Sie ein Programm, das eine ASCII-Code Tabelle fuer die druckbaren
    Zeichen (ASCII-Codes von 32 - 255)

    Es gibt keine ASCII-Codes im Bereich 128-255. ASCII-Codes liegen alle im Bereich 0-127.



  • @wxSkip ok so etwa?:

    int main()
    {
        int sterne,
            zahlenzeile,
            zaehler1;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            printf(" %d", zahlenzeile);}
        printf("\n");
        for(sterne=0; sterne<=55; sterne++){
            printf("*");}
        for(zaehler1=31; zaehler1<=255; zaehler1++)
        {
            if(zaehler1%20==0)
                printf("\n");
        }
        return 0;
    }
    
    }
    

    @Christoph so stehts aber bei der HÜ in der Angabe o.O ⚠



  • Hello World schrieb:

    @wxSkip ok so etwa?:

    Das siehst du doch selber, dass das so noch nicht funktioniert. Denk halt mal ein bisschen nach, was passieren muss und was ich gemeint haben könnte.



  • Sorry war wirklich eine rasche Schlussvolgerung
    Also er sollte dann 255 leere Zeilen machen ... aber warum 32?



  • Hello World schrieb:

    Sorry war wirklich eine rasche Schlussvolgerung
    Also er sollte dann 255 leere Zeilen machen ... aber warum 32?

    Hello World schrieb:

    (ASCII-Codes von 32 - 255) ... ES SOLL SO AUSSEHEN: http://www.bildershare.de/?v=unbenannt-1295645198.png

    😕
    Weißt du überhaupt, was du willst?



  • Ja eine ASCII- Code tabelle 😞



  • Dann überlege mal bitte, warum ich wollte, dass nach jedem 20. Zeichen ein Umbruch stehen muss und warum du mit 32 anfangen sollst, während du auf deine Tabelle schaust.



  • In einer Sache muss ich mich korrigieren: Fange nicht mit 32 an, sondern gib erst ab 32 Zeichen aus und davor Leertasten.



  • ach so also das mit den 20 ist davür das in einer zeile 20 Symbole stehen und danach soll er einen zeilenumbruch machen und die 32 sollen i wie mit einer Leertaste ersetzt werden
    vll so: printf("\b "); ?



  • for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
            for(zaehler2=0; zaehler2<=32; zaehler2++)
            {
                printf("\b ");
            }
            zeilenh=zaehler1%20;
            if(zeilenh==0)
                printf(" %d *\n", zaehler1);
        }
    

    ?? So?



  • Hello World schrieb:

    ach so also das mit den 20 ist davür das in einer zeile 20 Symbole stehen und danach soll er einen zeilenumbruch machen und die 32 sollen i wie mit einer Leertaste ersetzt werden
    vll so: printf("\b "); ?

    Richtig! Aber nicht printf("\b "). Schau mal, wie viele Leerzeichen zwischen zwei Zeichen hinkommen und mach dir einen character, in den du entweder den Zähler oder ' ' reinschreibst, falls er kleiner als 32 ist. Diesen Character kannst du dann nach den Leerzeichen ausgeben (mit putc()).
    Nach dem Zeilenumbruch musst du natürlich noch 20/40/60 usw. ausgeben. (So wie auf deinem Bild halt)



  • Hello World schrieb:

    for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
            for(zaehler2=0; zaehler2<=32; zaehler2++)
            {
                printf("\b ");
            }
            zeilenh=zaehler1%20;
            if(zeilenh==0)
                printf(" %d *\n", zaehler1);
        }
    

    ?? So?

    Weißt du eigentlich, was dein Code macht? Sieht nicht so aus. Testen?



  • ja hab das Leerzeichen mit + ersetzt und gesehen das er das for 0,20,40,... hinmacht...
    Wie soll ich das jetz genau schreiben ?



  • So, dass das richtige rauskommt. Schau halt, was da steht:
    Zeile:

    Leerzeichen
    Zahl, die ggf. mit Leerzeichen aufgefüllt wird, wenn sie keine 3 Stellen besitzt
    Leerzeichen 
    Stern 
    Wiederholung: 
      Leerzeichen 
      Nächstes Zeichen in der ASCII-Tabelle oder Leerzeichen, falls Zeichen kleiner als 32
      Leerzeichen, wenn Zeichen nicht durch 20 mit Rest 19 teilbar, sonst Zeilenumbruch und Ende der Wiederholung
    


  • wxSkip schrieb:

    Leerzeichen
    Zahl, die ggf. mit Leerzeichen aufgefüllt wird, wenn sie keine 3 Stellen besitzt
    Leerzeichen 
    Stern
    

    Wie geht das nochmal das er erkennt wie viele Stellen die Zahl hat?

    wxSkip schrieb:

    Wiederholung: 
      Leerzeichen 
      Nächstes Zeichen in der ASCII-Tabelle oder Leerzeichen, falls Zeichen kleiner als 32
    

    Wie geht das in ner Schleife??



  • Hello World schrieb:

    wxSkip schrieb:

    Leerzeichen
    Zahl, die ggf. mit Leerzeichen aufgefüllt wird, wenn sie keine 3 Stellen besitzt
    Leerzeichen 
    Stern
    

    Wie geht das nochmal das er erkennt wie viele Stellen die Zahl hat?

    wxSkip schrieb:

    Wiederholung: 
      Leerzeichen 
      Nächstes Zeichen in der ASCII-Tabelle oder Leerzeichen, falls Zeichen kleiner als 32
    

    Wie geht das in ner Schleife??

    1. http://www.cplusplus.com/reference/clibrary/cstdio/printf/
    2. http://lmgtfy.com/?q=C+Schleife+mit+Zähler


Log in to reply