前提・実現したいこと
引数で与えられたint値の回数だけ 0: 9 の乱数を生成し,各数字の出現頻度を表示するプログラムを作りました。
発生している問題・エラーメッセージ
519051を超えると正常に表示されなくなります。
ある値以上では下のようになり
520000付近では下のようになります。
該当のソースコード
c言語
1```c言語 2#include <stdio.h> 3#include <stdlib.h> 4#include <time.h> 5void hist(int n){ 6 int i, k = 0, a[n], b[10] = {0}; 7 srand(time(NULL)); 8 for (i = 0; i < n;i++){ 9 a[i] = rand() % 10; 10 b[a[i]]++; 11 } 12 printf("n=%7d:", n); 13 while(k<=9){ 14 printf(" %5.1f", (double)b[k] * 100 / n); 15 k++; 16 } 17 putchar('\n'); 18} 19int main(void) { 20 hist(100); 21 hist(1000); 22 hist(10000); 23 hist(100000); 24 hist(519051);/*これを超えるとバグる*/ 25 return 0; 26}
### 試したこと 簡単なプログラムを書いたところ配列の数が519051を超えると表示されなくなります。 ![イメージ説明](7173d9b52809e6ec739d90f51adb8eb9.png) ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー