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

回答編集履歴

4

プログラム修正方法の一例を追加した。

2021/01/05 15:05

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,12 +1,57 @@
1
- SHOMIさんの回答で良いと思います。読み違ってました。
1
+ SHOMIさんの回答で良いと思います。最初の回答は読み違ってました。
2
2
 
3
3
  Z…全兵力
4
4
  A,B,C…3つそれぞれの兵力
5
5
  D…一時変数
6
6
 
7
- ですかね。
8
- わかりやすい変数にしたほうが良いという点は変わらないです。
9
7
 
8
+ A,B,Cに割り振る際に全兵力Zを引いていくような感じにするとわかりやすくなると思います。
9
+ ちょっと書き換えてみました。ついでに変数名も変えてみました。
10
+
11
+ ```C
12
+ #include<stdio.h>
13
+ #include<stdlib.h>
14
+
15
+ int main(void){
16
+ int RemainPerson;
17
+ int APerson,BPerson,CPerson;
18
+
19
+ /* 残り人数(初期値は合計人数) */
20
+ RemainPerson=30000;
21
+
22
+ /* 兵力Aの入力 */
23
+ printf("%d人の兵力を割り振ってください。\n",RemainPerson);
24
+ printf("グーの兵力:"); scanf("%d", &APerson);
25
+ while (RemainPerson - APerson < 0) {
26
+ /* 残り兵力を越えてしまっている場合、正しい値が入力されるまでやり直す。*/
27
+ system("cls");
28
+ printf("兵は%d人しかいません。\n",RemainPerson);
29
+ printf("%d人の兵力を割り振ってください。\n",RemainPerson);
30
+ printf("グーの兵力:"); scanf("%d", &APerson);
31
+ }
32
+ /* 兵力Aを除いたものが残り人数となる。*/
33
+ RemainPerson -= APerson;
34
+
35
+ /* 兵力Bの入力 */
36
+ printf("残りの兵力は%dです。\n", RemainPerson);
37
+ printf("チョキの兵力:"); scanf("%d", &BPerson);
38
+ while (RemainPerson - BPerson < 0) {
39
+ /* 残り兵力を越えてしまっている場合、正しい値が入力されるまでやり直す。*/
40
+ system("cls");
41
+ printf("残りの兵は%d人しかいません。\n", RemainPerson);
42
+ printf("チョキの兵力:"); scanf("%d", &BPerson);
43
+ }
44
+ /* さらに兵力Bを除いたものが残り人数となる。*/
45
+ RemainPerson -= BPerson;
46
+
47
+ /* 兵力Cの決定(残り人数がそのまま兵力Cとなる。) */
48
+ CPerson = RemainPerson;
49
+ printf("パーの兵力:%d\n",CPerson);
50
+
51
+ return 0;
52
+ }
53
+ ```
54
+
10
55
  ↓↓ 以下最初に書いた間違い ↓↓
11
56
 
12
57
  残り兵力を保持している変数は「Z」ではないでしょうか?

3

書式修正。

2021/01/05 15:05

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  ですかね。
8
8
  わかりやすい変数にしたほうが良いという点は変わらないです。
9
9
 
10
- -- 以下間違い --
10
+ ↓↓ 以下最初に書いた間違い ↓↓
11
11
 
12
12
  残り兵力を保持している変数は「Z」ではないでしょうか?
13
13
  「D」は一時的に使用される変数のようです。兵力がマイナスであるのかを判断するには「Z」を対象としなければいけないのではないでしょうか?

2

間違った回答をしてしまったので訂正した

2021/01/05 14:57

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,3 +1,14 @@
1
+ SHOMIさんの回答で良いと思います。読み違ってました。
2
+
3
+ Z…全兵力
4
+ A,B,C…3つそれぞれの兵力
5
+ D…一時変数
6
+
7
+ ですかね。
8
+ わかりやすい変数にしたほうが良いという点は変わらないです。
9
+
10
+ -- 以下間違い --
11
+
1
12
  残り兵力を保持している変数は「Z」ではないでしょうか?
2
13
  「D」は一時的に使用される変数のようです。兵力がマイナスであるのかを判断するには「Z」を対象としなければいけないのではないでしょうか?
3
14
 

1

読み間違えてるかもという予防線の文言を追加した。

2021/01/05 14:20

投稿

hidezzz
hidezzz

スコア1248

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  残り兵力を保持している変数は「Z」ではないでしょうか?
2
2
  「D」は一時的に使用される変数のようです。兵力がマイナスであるのかを判断するには「Z」を対象としなければいけないのではないでしょうか?
3
3
 
4
- あと、変数がAとかBとか英数字1文字だと読むのがつらいので、もっとわかりやすい変数名にすることをおすすめします。
4
+ あと、変数がAとかBとか英数字1文字だと読むのがつらいので、もっとわかりやすい変数名にすることをおすすめします。
5
+ (実際自分もリファクタリングせずにソースコードを見ているのでなんか読み間違っているような気がしています。)