回答編集履歴

2

問題点指摘

2019/07/29 13:58

投稿

thkana
thkana

スコア7639

test CHANGED
@@ -91,3 +91,39 @@
91
91
  ```
92
92
 
93
93
  とか?
94
+
95
+
96
+
97
+ ---
98
+
99
+
100
+
101
+ 別件ですけど。
102
+
103
+ ```C++
104
+
105
+ int toSide(float y){
106
+
107
+ if(y>-0.2 && y<0.2){
108
+
109
+ return 1;
110
+
111
+ }else if(y>=0.2 && y<0.5){
112
+
113
+ return 2;
114
+
115
+ }else if(y>=0.5 && y<0.8){
116
+
117
+ return 3;
118
+
119
+ }else if(y>=0.8 && y<1.1){
120
+
121
+ return 4;
122
+
123
+ }
124
+
125
+ }
126
+
127
+ ```
128
+
129
+ この関数は、yが-0.2以下のときとyが1.1以上のときには全部のif文の条件が偽になるので返す値が不定になりそうです。適切に修正して下さい。

1

追記

2019/07/29 13:58

投稿

thkana
thkana

スコア7639

test CHANGED
@@ -67,3 +67,27 @@
67
67
  }
68
68
 
69
69
  ```
70
+
71
+
72
+
73
+ ---
74
+
75
+ 飛び級?の変化はさせない(1->3になりそうなら1のまま、4->1になりそうなら4のまま等)、というのなら
76
+
77
+ ```C++
78
+
79
+ //ここから変更点
80
+
81
+ int tmpSide = toSide(y);
82
+
83
+ if( tmpSide == side+1 || tmpSide == side-1 ){
84
+
85
+ side=tmpSide;
86
+
87
+ }
88
+
89
+ //ここまで変更点
90
+
91
+ ```
92
+
93
+ とか?