質問するログイン新規登録

回答編集履歴

3

2018/09/26 14:17

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -22,8 +22,8 @@
22
22
 
23
23
  # サイコロの目に対応する「カウント用の配列」の要素を+1する。
24
24
  i <= 8
25
- roll ← array[i] # サイコロの目
25
+ number ← array[i] # サイコロの目
26
- cnt[roll] ← cnt[roll] + 1
26
+ cnt[roll] ← cnt[number] + 1
27
27
 
28
28
  # 表示する。
29
29
  i <= 6
@@ -43,8 +43,8 @@
43
43
 
44
44
  // カウントする。
45
45
  for (int i = 0; i < 8; i++) {
46
- int roll = array[i]; // サイコロの目
46
+ int number = array[i]; // サイコロの目
47
- cnt[roll - 1] += 1;
47
+ cnt[number - 1] += 1;
48
48
  }
49
49
 
50
50
  // 結果を表示する。

2

修正

2018/09/26 14:17

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -12,18 +12,18 @@
12
12
  インデックスが1始まりと仮定した場合
13
13
 
14
14
  ```presudecode
15
- arry[8], cnt[6]
15
+ array[8], cnt[6]
16
16
 
17
- arry = [1, 2, 4, 3, 6, 1, 2, 5]
17
+ array = [1, 2, 4, 3, 6, 1, 2, 5]
18
18
 
19
- # カウント用の配列を0で初期化する。
19
+ # カウント用の配列を0で初期化する。
20
20
  i <= 6
21
- cnt[i] <- 0
21
+ cnt[i] 0
22
22
 
23
- # サイコロの目に対応するカウント用の配列を+1する。
23
+ # サイコロの目に対応するカウント用の配列」の要素を+1する。
24
24
  i <= 8
25
- roll <- array[i] # サイコロの目
25
+ roll array[i] # サイコロの目
26
- cnt[roll] <- cnt[roll] + 1
26
+ cnt[roll] cnt[roll] + 1
27
27
 
28
28
  # 表示する。
29
29
  i <= 6

1

2018/09/26 14:13

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,4 +1,4 @@
1
- 問題点
1
+ ## 問題点
2
2
 
3
3
  * cnt, array など配列のインデックスは 0 始まりでしょうか?1始まりでしょうか?
4
4
  それによって、ループの継続判定が変わってきます。
@@ -6,6 +6,9 @@
6
6
  * cnt[i] <- cnt[i] + array[i] だとサイコロの目の値を足してしまっています。array[i] が出た目なので、cnt[array[i]] = cnt[array[i]] + 1 とします。
7
7
  * コメントにあるように、集計が終わったあとに出力します。
8
8
 
9
+
10
+ ## 擬似コード
11
+
9
12
  インデックスが1始まりと仮定した場合
10
13
 
11
14
  ```presudecode
@@ -26,4 +29,36 @@
26
29
  i <= 6
27
30
  i, cnt[i] を表示する
28
31
 
32
+ ```
33
+
34
+ ## C言語の例
35
+
36
+ ```c
37
+ int main(void){
38
+ // サイコロの目
39
+ int array[] = {1, 3, 4, 6, 2, 1, 5, 3};
40
+
41
+ // カウント用の配列を初期化する。
42
+ int cnt[6] = {};
43
+
44
+ // カウントする。
45
+ for (int i = 0; i < 8; i++) {
46
+ int roll = array[i]; // サイコロの目
47
+ cnt[roll - 1] += 1;
48
+ }
49
+
50
+ // 結果を表示する。
51
+ for (int i = 0; i < 6; i++) {
52
+ printf("%d:%d\n", i + 1, cnt[i]);
53
+ }
54
+ }
55
+ ```
56
+
57
+ ```
58
+ 1:2
59
+ 2:1
60
+ 3:2
61
+ 4:1
62
+ 5:1
63
+ 6:1
29
64
  ```