Ascii code tabelle ausgeben C



  • Komm ich so schon näher ????:
    ausgabe:
    edit: http://www.bildershare.de/?v=unbenannt-1295710746.png



  • Noch wer Daaa????



  • Hello World schrieb:

    TOTALVERWIRRUNG 😕 😕 😕 😕 😕

    Sehr informative Aussage.

    Hello World schrieb:

    Also ich muss den Ascii i-wo so ausgeben:

    for(ascii=0; ascii<=255; ascii++)
        {
            printf("%c", ascii);
        }
    

    oder?

    Ja, und wenn ascii < 32, DANN MUSS EIN LEERZEICHEN AUSGEGEBEN WERDEN, zum 5-ten mal! Und wie gesagt, nimm putc().

    Hello World schrieb:

    Komm ich so schon näher ????:
    ausgabe:
    edit: http://www.bildershare.de/?v=unbenannt-1295710746.png

    Kannst du das nicht selbst beurteilen? Siehst du nicht, was passiert? Du gibst die Zeilennummern vor dem Zeilenumbruch aus, und du gibst keine Anfangs-Zeilennummer aus. Außerdem werden deine Zahlen mit Nullen statt mit Leerzeichen aufgefüllt und die Leerzeichenzahl stimmt auch sonst immer noch nicht.

    Hello World schrieb:

    Noch wer Daaa????

    Rund-um-die-Uhr-Service kostet extra.



  • ok gut wie soll ich einen ascii code in putc() ausgeben?



  • Google?



  • 1. Ich mag Google nicht!!
    2. geht es auch mit putchar()?



  • Google/Yahoo/Bing/Web.de/Ecosia/...!



  • Weist du wie das programm geht??



  • Ja!



  • Dan poste es bitte ich verstehe es leichter wenn ich den Code sehe !!



  • Wozu hast du ein Gehirn?
    Benutze eine Suchmaschine und setze den Pseudocode 1:1 in C um, dann hast du schon zwei Drittel!



  • Also gut ... jetzt nochmal von vorne.

    erstmals meine Zeile mit den 2 Schleifen für die ersten 2 Zeilen

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

    Danach beginnt der eigentliche Sinn des Programms, ich beginne mit einer for Schleife für die Zahlen ausgabe links, 000, 020, 030,...:

    for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
    

    danach der zähler für die ascii codes der bei jeden durchgang um 1 erhöht

    ascii++;
    

    danach eine if-abfrage mit ausgabe des ascii codes wenn er höher als 32 ist

    if(ascii>=32)
                {
                    printf(" ");
                    putchar(ascii);
                }
    

    danach die ausgebe der Zeilen Links

    zeilenh=zaehler1%20;
            if(zeilenh==0)
            {
                printf(" %.3d * \n", zaehler1);
    
            }
        }
    
        return 0;
        }
    

    zusammen:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int sterne,
            zahlenzeile,
            zaehler1,
            zeilenh;
        int ascii;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            printf(" %d", zahlenzeile);}
        printf("\n");
        for(sterne=0; sterne<=55; sterne++){
            printf("*");}
        printf("\n");
        for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
                ascii++;
                if(ascii>=32)
                {
                    printf(" ");
                    putchar(ascii);
                }
    
            zeilenh=zaehler1%20;
            if(zeilenh==0)
            {
                printf(" %.3d * \n", zaehler1);
    
            }
        }
    
        return 0;
        }
    

    Was ist da bitte falsch? bzw. was fehlt?



  • Schau dir das Lösungsbild noch mal gaanz genau an. Du solltest mehrere Unterschiede zu dem finden, was du machen willst. Dann schau dir nochmal an, was dein Programm macht. Die if-Bedingung ist falsch, es muss auch noch etwas im else-Zweig passieren. putchar() hast du jetzt verwendet, das ist gut, wenn du allerdings sowieso noch ein Leerzeichen ausgibst, kannst du auch printf(" %c", ascii) schreiben (das hatte ich übersehen). Des weiteren habe ich mich mal verbessert, dass das Modulo-Ergebnis 19 sein muss, da du ja bei 19, 39, 59 und so weiter umbrechen musst. Das printf() zum Zeilenumbruch tut nicht das richtige, und du hast immer noch nicht alle Dinge aus meinem Pseudocode berücksichtigt.

    Zur besseren Lesbarkeit solltest du übrigens [cpp]dein code[/cpp] statt [code]dein code[/code] schreiben.



  • gut welche if ist da falsch?? hab jetz mal beim 2. if einen else if zweig hinzugefügt ... sieht so aus

    for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
                ascii++;
                if(ascii>=32)
                {
                    printf(" %c", ascii);
                }
    
            zeilenh=zaehler1%20;
            if(zeilenh==0)
            {
                printf(" %.3d * \n", zaehler1);
            }
            else if(zeilenh==19)
            {
                printf("\n");
            }
        }
    

    Programm macht jetzt das ... http://www.bildershare.de/?v=unbenannt-1295717984.png
    sieht zwar schon besser aus aber immer noch nicht richtig ...



  • Ich meinte das erste if.
    Beim zweiten if solltest du auf 19 statt auf 0 überprüfen für deinen Zeilenumbruch... die Ausgabe beim Zeilenumbruch ist aber immer noch falsch.
    Beim zweiten if sollte aber siehe Pseudocode auch ein else-Zweig hin.



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int sterne,
            zahlenzeile,
            zaehler1,
            zeilenh;
        int ascii;
        printf("     *");
        for(zahlenzeile=0; zahlenzeile<=19;zahlenzeile++){
            printf(" %d", zahlenzeile);}
        printf("\n");
        for(sterne=0; sterne<=55; sterne++){
            printf("*");}
        printf("\n");
        for(zaehler1=0; zaehler1<=255; zaehler1++)
        {
            zeilenh=zaehler1%20;
            if(zeilenh==0)
            {
                printf(" %.3d *", zaehler1);
            }
    
            ascii++;
                if(ascii>=32)
                {
                    printf(" %c", ascii);
                }
                else
                {
                    printf(" ");
                }
            if(zeilenh==19)
            {
                printf("\n");
            }
    
        }
        return 0;
    }
    

    Fast richtig oder??



  • Mach deine Augen auf und sieh nach, dass es nicht "fast richtig" ist.
    (geschätzte 5 Fehler)



  • Gut vermutlich hast du recht ... kommen wir zum 1. Fehler in welcher Zeile liegt der?



  • ??



  • Du bist registriert, heisst du kannst Editieren statt vier Posts nacheinander abzugeben...

    Hello World schrieb:

    Dan poste es bitte ich verstehe es leichter wenn ich den Code sehe !!

    Sag doch gleich, dass wir dir den Kack coden sollen -.-

    EDIT: Sorry wegen dem Kraftausdruck...


Anmelden zum Antworten