質問編集履歴

3

出力結果を修正

2022/08/21 15:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -114,30 +114,31 @@
114
114
  ```
115
115
  【出力データ】
116
116
  ```出力結果
117
- 1
118
117
  S 1
119
- 2
120
- 3
121
- 4
122
- 5
123
- 6
124
- 7
125
- 8
126
- 9
127
- 10
128
- 11
129
- 12
130
- 13
131
- 14
132
- 15
133
- 16
134
118
  S 16
135
- 17
136
- 18
137
- 19
138
- 20
139
119
  S 20
120
+ S 27
121
+ S 28
122
+ S 29
123
+ S 30
124
+ S 31
125
+ S 32
126
+ S 33
127
+ S 34
128
+ S 35
129
+ S 36
130
+ S 37
131
+ S 38
132
+ S 40
133
+ S 45
134
+ S 46
135
+ S 53
136
+ S 54
137
+ S 55
138
+ S 56
139
+ S 67
140
+ S 68
140
- ...
141
+ S...
141
142
  ```
142
143
  回答いただいているお二方ありがとうございます。
143
144
 

2

コメントの変更

2022/08/20 13:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -175,7 +175,7 @@
175
175
  else if (mark == 'D'){
176
176
  marknum = 3;
177
177
  }
178
- X[marknum][num-1] = 1;//1<=num<=13を0<=num<=12に変更 
178
+ X[marknum][num-1] = 1;//数字の範囲を変更:1<=num<=13を0<=num-1<=12に変更 
179
179
  }
180
180
 
181
181
  for (int j = 0; j < 4; ++j){

1

書式の改善、追加の質問

2022/08/20 13:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -139,4 +139,68 @@
139
139
  S 20
140
140
  ...
141
141
  ```
142
-
142
+ 回答いただいているお二方ありがとうございます。
143
+
144
+ 以下のように変更した結果、正常な値を出力することができました
145
+ 変更点
146
+ ① if (j =1){ ⇨ if (j == 1){
147
+ ②  j,sの範囲を0からに修正
148
+
149
+ ここで疑問なのはなぜ修正によって
150
+ sが表示されたりされなかったりしたのか、また数字だけ連続で永遠に出力されてしまったのかという点です。
151
+ 値の範囲が正常に修正されたこととの関連がわからないです。
152
+ 修正後コード
153
+ ```C++
154
+ #include<iostream>
155
+ using namespace std;
156
+
157
+ int main(){
158
+ int X[4][13] = {0};
159
+ char mark;
160
+ int num;
161
+ int marknum;
162
+ int n;
163
+ cin >> n;
164
+ for (int i = 0; i < n; ++i){
165
+ cin >> mark >> num;
166
+ if (mark == 'S'){
167
+ marknum = 0;
168
+ }
169
+ else if (mark == 'H'){
170
+ marknum = 1;
171
+ }
172
+ else if (mark == 'C'){
173
+ marknum = 2;
174
+ }
175
+ else if (mark == 'D'){
176
+ marknum = 3;
177
+ }
178
+ X[marknum][num-1] = 1;//1<=num<=13を0<=num<=12に変更 
179
+ }
180
+
181
+ for (int j = 0; j < 4; ++j){
182
+ for (int s = 0; s < 13; ++s){
183
+ if (X[j][s] == 0){
184
+ if (j == 0){
185
+ mark = 'S';
186
+
187
+ }
188
+ else if (j == 1){
189
+ mark = 'H';
190
+
191
+ }
192
+ else if (j == 2){
193
+ mark = 'C';
194
+
195
+ }
196
+ else if (j == 3){
197
+ mark = 'D';
198
+
199
+ }
200
+ cout << mark << " " << s+1 << endl;//s+1=num
201
+ }
202
+ }
203
+ }
204
+ }
205
+ ```
206
+