我們統計一列0~9的随機數,列印每個數字出現的次數,像這樣的統計結果稱為直方圖(Histogram),以可視化的形式列印直方圖。例如統計20個随機數的結果是:
0 1 2 3 4 5 6 7 8 9
* * * * * * * *
* * * * * * *
* * *
*
*
對于這樣的一個題目,首先想到的肯定是要用到數組,那麼具體的代碼怎麼是現呢?代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 20
int a[N];
void gen_random(int upper_bound)
{
srand((int)time(NULL));
int i;
for(i=0;i<N;i++){
a[i] = rand() % upper_bound;
}
}
int main(void)
{
int i,j,k,l,histogram[10] = {0};
gen_random(10);
for(i=0;i<N;i++)
histogram[a[i]]++;
for(j=0;j<10;j++)
printf("%d\t",j);
printf("\n");
for(l=0;l<N;l++){
for(k=0;k<10;k++){
if(histogram[k]>0){
printf("*\t");
histogram[k]--;
}
else{
printf(" \t");
}
}
printf("\n");
};
return 0;
}