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.