このプログラムでは、指定された範囲である数のランダムなintを生成するつもりです。たとえば、0〜10の間の100の整数。数値のブロックでintの配列を出力するには? (ヒストグラムの印刷)
特定の番号が何回生成されたかを示す分布の配列(distTabと呼ばれる)を作成しました。私はその後、forループの中の星として数値を表示します。下の画像を確認してください。
これは0-10に適していますが、私は私の0-1000印刷機能プリントdistTabのすべてのインデックスとの間に10000個の番号を生成すると言います。私は範囲でそれをカットし、その範囲のお互いにインデックス値を追加したいと思います。たとえば、0-100 - > 20個の星、101-200 - > 21個の星などです。 (ループのために)このように作成されている
int inc=0;
printf("\n%s\t%s\n","Number", "Histogram\n");
for(int i=0; i <= max; i++) {
if(distTab[i]==0)
continue;
printf(" %d\t",i);
int lim = distTab[i];
for(int j=1; j<=lim; j++){
printf("*");
inc++;
}
printf("\n");
}
乱数とdistTab:
はここに私の現在のヒストグラムを印刷するためのコードですお時間を事前に
int distTab[MAX_RAND];
memset(distTab, 0, sizeof distTab);
//for(0 -> desired number of ints)
rnd = (rand() % limit)+1;
if (max < rnd)
max = rnd; //max value generated.
distTab[(int)rnd]++;
//}
感謝をし、私はできる限り私の質問をはっきりと説明してくれることを願っています。
Whatdをあなたは試してみましたか? –
'int myfunc(int value)'(より適切な関数名を見つける)関数を書く必要があります。これは、 'value'が0と100の間にあれば20を返し、' value'が101と200の間にあれば21を返します、201と300の間の 'value 'のための22 ** **ヒント**:鉛筆と紙で始める。 –