質問編集履歴

5

2020/07/17 13:54

投稿

Giovannaaa
Giovannaaa

スコア10

test CHANGED
File without changes
test CHANGED
@@ -34,6 +34,110 @@
34
34
 
35
35
  ```C++
36
36
 
37
+
38
+
39
+ #include<iostream>
40
+
41
+ #include<cstdlib>
42
+
43
+
44
+
45
+ using namespace std;
46
+
47
+
48
+
49
+ int draw(void)
50
+
51
+ {
52
+
53
+ static int card[53];
54
+
55
+ static int count=0; // 引いた枚数
56
+
57
+
58
+
59
+ srand(time(NULL)); // 乱数のタネ
60
+
61
+ int r;
62
+
63
+
64
+
65
+ do{
66
+
67
+ r = rand()%52+1; //1~52の乱数
68
+
69
+ card[r]++; //2回目以上なら2以上
70
+
71
+ }while(card[r] > 1 && count < 52);
72
+
73
+
74
+
75
+ if(count > 52){
76
+
77
+ r = 0;
78
+
79
+ }
80
+
81
+
82
+
83
+ count++;
84
+
85
+
86
+
87
+ return r;
88
+
89
+ }
90
+
91
+
92
+
93
+ void change(int n)
94
+
95
+ {
96
+
97
+ int suit, number; //スートと数字
98
+
99
+
100
+
101
+ suit = (n-1) / 13; //スートの計算
102
+
103
+
104
+
105
+ number = n - 13*suit; //数字の計算
106
+
107
+
108
+
109
+ switch(suit){
110
+
111
+ case 0: cout << "S"; break;
112
+
113
+ case 1: cout << "H"; break;
114
+
115
+ case 2: cout << "D"; break;
116
+
117
+ case 3: cout << "C"; break;
118
+
119
+ }
120
+
121
+
122
+
123
+ switch(number){
124
+
125
+ case 1: cout << "A"; break;
126
+
127
+ case 11: cout << "J"; break;
128
+
129
+ case 12: cout << "Q"; break;
130
+
131
+ case 13: cout << "K"; break;
132
+
133
+ default: cout << number;
134
+
135
+ }
136
+
137
+ }
138
+
139
+
140
+
37
141
  void total(int n)
38
142
 
39
143
  {
@@ -80,4 +184,56 @@
80
184
 
81
185
 
82
186
 
187
+
188
+
189
+ int main()
190
+
191
+ {
192
+
193
+ char check; // YかN
194
+
195
+
196
+
197
+ int number; //draw関数で引いた数字
198
+
199
+
200
+
201
+ do{
202
+
203
+ cout << "カードを引きますか?(Y/N):";
204
+
205
+ cin >> check;
206
+
207
+ if(check == 'Y'){
208
+
209
+ number = draw();
210
+
211
+ if(number){ // 0でなかったらカードを表示
212
+
213
+ change(number); // カードの数字とスートを返す
214
+
215
+ cout << endl;
216
+
217
+ }
218
+
219
+ else{
220
+
221
+ check ='N';
222
+
223
+ cout << "カードがありません。" << endl;
224
+
225
+ }
226
+
227
+ // total(number);
228
+
229
+ }
230
+
231
+ }while(check != 'N');
232
+
233
+ }
234
+
235
+
236
+
237
+
238
+
83
239
  ```

4

2020/07/17 13:54

投稿

Giovannaaa
Giovannaaa

スコア10

test CHANGED
File without changes
test CHANGED
@@ -33,8 +33,6 @@
33
33
  どうしたらよいでしょうか??
34
34
 
35
35
  ```C++
36
-
37
-
38
36
 
39
37
  void total(int n)
40
38
 

3

2020/07/17 13:50

投稿

Giovannaaa
Giovannaaa

スコア10

test CHANGED
File without changes
test CHANGED
@@ -30,48 +30,56 @@
30
30
 
31
31
  予め他の関数で作られた数字1〜13を引数としています。
32
32
 
33
- どうしたらよいでしょうか??```C++
33
+ どうしたらよいでしょうか??
34
+
35
+ ```C++
36
+
37
+
34
38
 
35
39
  void total(int n)
36
40
 
37
41
  {
38
42
 
39
- static int total;
43
+ static int goukei;
40
44
 
41
45
 
42
46
 
43
- total += n;
47
+ goukei += n;
44
48
 
45
49
 
46
50
 
47
- cout <<"Total:";
51
+ cout << "Total:";
48
52
 
49
53
 
50
54
 
51
- do{
55
+ do{
52
56
 
53
- if(total<21){
57
+ if(goukei<21){
54
58
 
55
- cout <<total <<endl;
59
+ cout << goukei << endl;
56
60
 
57
- }
61
+ }
58
62
 
59
- else if(total == 21){
63
+ else if(goukei == 21){
60
64
 
61
- cout <<total <<endl;
65
+ cout << goukei << endl;
62
66
 
63
- cout <<"Black Jack"<<endl;
67
+ cout <<"Black Jack" << endl;
64
68
 
65
- break;
69
+ break;
66
70
 
71
+ }
72
+
67
- }while(total<=21);
73
+ }while(goukei<=21);
68
74
 
69
75
 
70
76
 
71
- cout <<total <<endl;
77
+ cout << goukei << endl;
72
78
 
73
- cout <<"21以上になりました"<<endl;
79
+ cout << "21以上になりました" << endl;
74
80
 
75
- }
81
+ }
76
82
 
83
+
84
+
77
- }```
85
+ ```

2

2020/07/17 13:48

投稿

Giovannaaa
Giovannaaa

スコア10

test CHANGED
File without changes
test CHANGED
@@ -32,9 +32,7 @@
32
32
 
33
33
  どうしたらよいでしょうか??```C++
34
34
 
35
- コード
36
-
37
- ```void total(int n)
35
+ void total(int n)
38
36
 
39
37
  {
40
38
 
@@ -76,4 +74,4 @@
76
74
 
77
75
  }
78
76
 
79
- }
77
+ }```

1

2020/07/17 13:45

投稿

Giovannaaa
Giovannaaa

スコア10

test CHANGED
File without changes
test CHANGED
@@ -27,6 +27,8 @@
27
27
  21以上になりました。
28
28
 
29
29
  このようにカードが引かれるたびに数字を足していくtotal関数を作ったのですが出力すると適当な数字が予め足されている状態ででます。
30
+
31
+ 予め他の関数で作られた数字1〜13を引数としています。
30
32
 
31
33
  どうしたらよいでしょうか??```C++
32
34