回答編集履歴

2

訂正

2020/10/23 06:08

投稿

tatsu99
tatsu99

スコア5533

test CHANGED
@@ -78,7 +78,9 @@
78
78
 
79
79
  の次の行へ
80
80
 
81
+ ~~if (r < 1 || r > 11){~~
82
+
81
- if (r < 1 || r > 11){
83
+ if (r < 1 || r > 10){
82
84
 
83
85
  printf("error=d\n",r);
84
86
 

1

追記しました。

2020/10/23 06:08

投稿

tatsu99
tatsu99

スコア5533

test CHANGED
@@ -33,3 +33,57 @@
33
33
 
34
34
 
35
35
  上記の修正で、とりあえず、それなりの結果がでるかと思います。
36
+
37
+
38
+
39
+ 追記分です。
40
+
41
+ 1.int random_range(int s, int e)
42
+
43
+ は、下限:s 上限:eが指定されたとき、s~eの範囲のランダムな数値を返す関数です。
44
+
45
+ 10000回のループは、ここですべきではありません。
46
+
47
+ 2.int random_rangeの呼び出し側は、
48
+
49
+
50
+
51
+ ```C
52
+
53
+ for(i=0;i<10000;++i){
54
+
55
+ r = random_range(1,10);
56
+
57
+ ++stat[r];
58
+
59
+ }
60
+
61
+ for(i=1;i<11;i++)
62
+
63
+ printf("%d の出現回数%5d\n",i, stat[i]);
64
+
65
+ }
66
+
67
+
68
+
69
+ ```
70
+
71
+ とすべきです。
72
+
73
+ 尚、random_rangeが本当に期待した結果を返すかどうか
74
+
75
+ チェックするするために
76
+
77
+ r = random_range(1,10);
78
+
79
+ の次の行へ
80
+
81
+ if (r < 1 || r > 11){
82
+
83
+ printf("error=d\n",r);
84
+
85
+ return 0;
86
+
87
+ }
88
+
89
+ を入れておくと、確認が可能になります。