質問編集履歴

2

意図的な質問内容の変更が見られたため、復元しました。

2020/04/21 09:18

投稿

L4zy
L4zy

スコア18

test CHANGED
@@ -1 +1 @@
1
- 解決しました。。。。。。
1
+ 10個の1から100での乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、うまくいきません
test CHANGED
@@ -1 +1,117 @@
1
- 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、うまくいきません。
1
+ 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、
2
+
3
+ たまに10個出力されない時があります。
4
+
5
+ なぜ毎回10個出力されないのか教えてください。
6
+
7
+ お願いします。
8
+
9
+ ```C
10
+
11
+ #include <stdio.h>
12
+
13
+ #include <stdlib.h>
14
+
15
+ #include <time.h>
16
+
17
+ // 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示する関数 戻り値0 引数なし
18
+
19
+ int main()
20
+
21
+ {
22
+
23
+ int ran[10] = {};
24
+
25
+ // ookii:平均値より大きい数 tiisai:平均値より小さい数
26
+
27
+ int ookii[10] = {}, tiisai[10] = {};
28
+
29
+ int ookiiCnt = 0, tiisaiCnt = 0;
30
+
31
+ int goukei = 0, heikin, i;
32
+
33
+ srand((unsigned)time(NULL));
34
+
35
+ // 各要素に、1から100までの乱数を代入
36
+
37
+ for(i = 0; i < 10; i++)
38
+
39
+ {
40
+
41
+ // 1から100までの乱数を生成
42
+
43
+ ran[i] = rand() % 100 + 1;
44
+
45
+ // 合計値
46
+
47
+ goukei += ran[i];
48
+
49
+ // 配列の内容を表示
50
+
51
+ printf("%d ", ran[i]);
52
+
53
+ }
54
+
55
+
56
+
57
+ // 平均値
58
+
59
+ heikin = goukei / 10;
60
+
61
+ printf("\n\n合計値:%d\n", goukei);
62
+
63
+ printf("平均値:%d\n\n", heikin);
64
+
65
+ // 配列ranにデータが存在する間
66
+
67
+ for(i = 0; i < ran[i] != 0; i++)
68
+
69
+ {
70
+
71
+ // 配列の値が平均値より大きかったら
72
+
73
+ if(heikin < ran[i])
74
+
75
+ {
76
+
77
+ ookii[ookiiCnt++] = ran[i];
78
+
79
+ }
80
+
81
+ // 配列の値が平均値より小さかったら
82
+
83
+ if(heikin > ran[i])
84
+
85
+ {
86
+
87
+ tiisai[tiisaiCnt++] = ran[i];
88
+
89
+ }
90
+
91
+ }
92
+
93
+ printf("平均値より大きい数:");
94
+
95
+ for(i = 0; ookii[i] != 0; i++)
96
+
97
+ {
98
+
99
+ printf("%d ", ookii[i]);
100
+
101
+ }
102
+
103
+ printf("\n平均値より小さい数:");
104
+
105
+ for(i = 0; tiisai[i] != 0; i++)
106
+
107
+ {
108
+
109
+ printf("%d ", tiisai[i]);
110
+
111
+ }
112
+
113
+ return 0;
114
+
115
+ }
116
+
117
+ ```

1

直した

2020/04/21 09:18

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 10個の1から100での乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、うまくいきません
1
+ 解決しました。。。。。。
test CHANGED
@@ -1,131 +1 @@
1
- 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、
1
+ 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示したいのですが、うまくいきません。
2
-
3
- たまに10個出力されない時があります。
4
-
5
- なぜ毎回10個出力されないのか教えてください。
6
-
7
- お願いします。
8
-
9
-
10
-
11
- ```C
12
-
13
- #include <stdio.h>
14
-
15
- #include <stdlib.h>
16
-
17
- #include <time.h>
18
-
19
-
20
-
21
- // 10個の1から100までの乱数の合計値と平均値、平均値より大きい数、小さい数を表示する関数 戻り値0 引数なし
22
-
23
- int main()
24
-
25
- {
26
-
27
- int ran[10] = {};
28
-
29
- // ookii:平均値より大きい数 tiisai:平均値より小さい数
30
-
31
- int ookii[10] = {}, tiisai[10] = {};
32
-
33
- int ookiiCnt = 0, tiisaiCnt = 0;
34
-
35
- int goukei = 0, heikin, i;
36
-
37
- srand((unsigned)time(NULL));
38
-
39
-
40
-
41
- // 各要素に、1から100までの乱数を代入
42
-
43
- for(i = 0; i < 10; i++)
44
-
45
- {
46
-
47
- // 1から100までの乱数を生成
48
-
49
- ran[i] = rand() % 100 + 1;
50
-
51
- // 合計値
52
-
53
- goukei += ran[i];
54
-
55
- // 配列の内容を表示
56
-
57
- printf("%d ", ran[i]);
58
-
59
- }
60
-
61
-
62
-
63
- // 平均値
64
-
65
- heikin = goukei / 10;
66
-
67
- printf("\n\n合計値:%d\n", goukei);
68
-
69
- printf("平均値:%d\n\n", heikin);
70
-
71
-
72
-
73
- // 配列ranにデータが存在する間
74
-
75
- for(i = 0; i < ran[i] != 0; i++)
76
-
77
- {
78
-
79
- // 配列の値が平均値より大きかったら
80
-
81
- if(heikin < ran[i])
82
-
83
- {
84
-
85
- ookii[ookiiCnt++] = ran[i];
86
-
87
- }
88
-
89
- // 配列の値が平均値より小さかったら
90
-
91
- if(heikin > ran[i])
92
-
93
- {
94
-
95
- tiisai[tiisaiCnt++] = ran[i];
96
-
97
- }
98
-
99
- }
100
-
101
-
102
-
103
- printf("平均値より大きい数:");
104
-
105
- for(i = 0; ookii[i] != 0; i++)
106
-
107
- {
108
-
109
- printf("%d ", ookii[i]);
110
-
111
- }
112
-
113
-
114
-
115
- printf("\n平均値より小さい数:");
116
-
117
- for(i = 0; tiisai[i] != 0; i++)
118
-
119
- {
120
-
121
- printf("%d ", tiisai[i]);
122
-
123
- }
124
-
125
-
126
-
127
- return 0;
128
-
129
- }
130
-
131
- ```