Vektor belegen und ausgeben



  • Hallo,

    ich versuche gerade ein programm zu schreiben dass mir mittels rand 500 zahlen zwischen 0 und neun generiert.Dann soll das programm die anzahl der 1 ,2 ,3 .... als ausgeben . Desweiteren soll wenn es zb 40 zweier sind noch 40 # hinter der anzahl stehen.
    Jedoch generiert mir die hashtags gar nicht und die die anzahl ist komplett irr sinniger wert vill könnt ihr mir helfen 🙂
    Unten steht der code

    #include<stdio.h> 
    #include<stdlib.h> 
    int main (void) 
    { 
        int x,z[10],i,k,h,y; 
        h=0; 
        for (k=0;k<499;k++) 
        { 
            x=rand()%10; 
            printf("hallo :%d",x); 
            for(i=0;i<10;i++) 
            {   
                if (x==i) 
                {   
                    z[i]++; 
                } 
            } 
        } 
        printf("kontrolle :%d",z[1]); 
        for(y=0;y<10;y++) 
        { 
            printf("Zahl%d , Anzahl %d:",y,z[y]); 
            if (z[y]>=h) 
            {   printf("#"); 
                h++; 
            } 
            else 
                printf("\n"); 
        } 
    
    }
    


  • Du solltest dein z Array vielleicht mal initialisieren.

    Die for Schleife in Zeile 11 kannst du dir auch sparen mit z[x]++;

    Was du da am Ende mit der Ausgabe vorhast, ist mir schleierhaft.



  • DIe ausgabe soll ungefähr so aussehen

    Zahl 1, Anzahl 5 : #####
    Zahl 2, Anzahl 15: ###############
    ........



  • Du generierst nur 499 Zufallszahlen.

    Zur Ausgabe reicht eine for-Schleife.

    printf("Zahl%d , Anzahl %2d:",y,z[y]);
            for(h=0;h<z[y];h++)
              putchar ('#');
            putchar ('\n');
    


  • Vor der Verwendung von rand() solltest du auch ein srand() aufrufen.


Anmelden zum Antworten