Zeichenkette mit 'char'



  • hab ich versucht! Jedoch werden jetzt die Zahlen untereinander ausgegeben. Es muss jedoch nebeneinander geschehen!

    32 33 34 35 36 37 38 39 40
    ! " # $ % & ' (
    41 42 43 44 45 46 47 48 49
    ) * + ' - . / 0 1 usw.

    Gibts da nicht noch ne andere möglichkeit ???

    mfg Robb.



  • Original erstellt von Robb:
    **Gibts da nicht noch ne andere möglichkeit ???
    **

    natuerlich.
    2 schleifen

    die erste gibt die zahlen aus
    die zweite dann in der naechsten zeilen die dazupassenden zeichen



  • ich habs versucht! Aber irgendwie klappt das nicht mit den 2 Schleifen. Sieht aus wie eine Endlosschleife!! Was mache ich Falsch

    Hier nochmal der überarbeitet Quelltext:

    #include <stdio.h>
    /////////////////////////////////////////////////////////////////
    void main(void)
    {
    unsigned char ordnungszahl = 32;
    int zeilenzahl = 32;
    printf("\n\n");

    for(zeilenzahl=32; zeilenzahl<=255; zeilenzahl=zeilenzahl+1)
    {
    printf("%d" ,zeilenzahl);
    }
    for(ordnungszahl=32; ordnungszahl<=255; ordnungszahl=ordnungszahl+1)
    {
    printf("%c", ordnungszahl);
    }

    printf("\n\n");
    }
    ///////////////////////////////////////////////////////////////////////////

    Bitte helft mir !!!

    M f g

    Robb.



  • ordnungszahl hat den falschen Typ. Wenn die Variable 255 ist, und du erhöhst sie ein weiteres mal, gibt es einen Überlauf, und es geht wieder bei 0 los. Folglich ist sie niemals nicht kleiner oder gleich 255, und es gibt eine Endlosschleife. Definiert sie als int und das Problem ist gelöst.

    Manche Compiler warnen bei sowas übrigens, "Comparison is always true".

    PS: Gewöhn dir void main(void) ab, es heißt int main()



  • erst einmal danke für Eure Hilfe! Jedoch bleibt bei mir noch 1 Problem offen.
    Ich muss die Zahlen mit den Zeichen getrennt unterneinander wie in einer Tabelle haben, und das bekomm ich einfach nicht hin. Das ganze soll dann so aussehen:

    32 33 34 35 36 37 38 39 40
    ! " # $ % & ' (

    41 42 43 44 45 46 47 47 48
    0 1 2 3 4 5 6 7 8

    49 50 61 62 63 64 65 66 67
    9 : ; < = > ? @ A

    Nur wie?? Hier nochmal der überarbeitete Quelltext:

    ////////////////////////////////////////////////////////////////////

    #include <stdio.h>

    int main()
    {
    int ordnungszahl;
    int zeilenzahl;
    printf("\n\n");

    for(zeilenzahl=32; zeilenzahl<=255; zeilenzahl=zeilenzahl+1)
    {
    printf("%d" ,zeilenzahl);
    }

    for(ordnungszahl=32; ordnungszahl<=255; ordnungszahl=ordnungszahl+1)
    {
    printf("%c", ordnungszahl);
    }

    printf("\n\n");
    }

    //////////////////////////////////////////////////////////////////////////

    HILFE !!!!

    M f g Robb.



  • Ich bin noch nicht ganz fertig, das Probelm besteht darin, dass ein Zeichen nicht gleichviel Platz braucht wie zB. eine dreistellige zahl wie 234. Dafür gibt es meines Wissens ein paar Format-Angaben für die printf Funktion.

    int main()
    {
        int i, j;
    
        i = 32; /*hier Startwert Angeben */
    
        while(i<70) /* und hier den Zielwert */
        {
            for(j=i;j<(i+10);j++)
                printf(" %i",j);
            printf("\n");
            for(j=i;j<(i+10);j++)
                printf(" %c",j);
            printf("\n");
            i+= 10;
        }
        return 0;
    }
    


  • Klappt Super! Danke für Deine Hilfe! Jetzt muss ich nur noch gucken das ich die Format-Angaben in den Griff bekomme.

    M f g

    Robb.



  • ENNNDDLLICHCHHH 😃

    #include <stdio.h>
    
    int main()
    {
        int i, j;
        i = 32; 
    
        while(i<255)
        {
            for(j=i;j<(i+10);j++)
                printf("%-4i",j);
            printf("\n");
            for(j=i;j<(i+10);j++)
                printf("%-4c",j);
            printf("\n\n");
            i+= 10;
        }
        return 0;
    }
    


  • Spitze! Klappt alles wunderbar!

    MFG ROBB.



  • was meint ihr andern zum obigen code? wie könnte er optimiert werde?


Anmelden zum Antworten