質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

324閲覧

C++ 関数定義でのエラー

Giovannaaa

総合スコア10

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/07/17 11:30

draw関数を使って引いたカードの数字1〜52を引数として、カードの数字1〜13を返す関数を作成して、合計がら21以上になるまでカードを引く行為を繰り返すプログラムを作ろうと思ってます。
a,j,q,kはそのままの数字で作ります。
実行例)
カードを引きますかY
SA
Total 1
カードを引きますかY
D3
Total 4
カードを引きますかY
S8
Total 12
カードを引きますかY
DQ
Total 24
21以上になりました。

main関数でのtotal(number)がエラーになります。
なぜでしょうか?よろしくお願いします。

C++

1コード 2``` #include<iostream> 3#include<cstdlib> 4 5using namespace std; 6 7int draw(void) 8{ 9 static int card[53]; 10 static int count=0; 11 12 srand(time(NULL)); 13 int r; 14 15 do{ 16 r = rand()%52+1; 17 card[r]++; 18 }while(card[r] > 1 && count < 52); 19 20 if(count > 52){ 21 r = 0; 22 } 23 24 count++; 25 26 return r; 27} 28 29void change(int n) 30{ 31 int suit, number; 32 33 suit = (n-1) / 13; 34 35 number = n - 13*suit; 36 37 switch(suit){ 38 case 0: cout << "S"; break; 39 case 1: cout << "H"; break; 40 case 2: cout << "D"; break; 41 case 3: cout << "C"; break; 42 } 43 44 switch(number){ 45 case 1: cout << "A"; break; 46 case 11: cout << "J"; break; 47 case 12: cout << "Q"; break; 48 case 13: cout << "K"; break; 49 default: cout << number; 50 } 51} 52 53void total(int n) 54{ 55 static int total; 56 57 total += n; 58 59 cout << "Total:"; 60 61 do{ 62 if(total<21){ 63 cout << total << endl; 64 } 65 else if(total == 21){ 66 cout << total << endl; 67 cout <<"Black Jack" << endl; 68 break; 69 }while(total<=21); 70 71 cout << total << endl; 72 cout << "21以上になりました" << endl; 73 } 74} 75 76int main() 77{ 78 char check; 79 80 int number; 81 82 static int total; 83 84 do{ 85 cout << "カードを引きますか?(Y/N):"; 86 cin >> check; 87 if(check == 'Y'){ 88 number = draw(); 89 if(number){ 90 change(number); 91 cout << endl; 92 93 total(number); 94 } 95 } 96 }while(check != 'N'); 97}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

static int total;

totalって関数のはずじゃないんですか?

total(number);

これはいったいどういうつもりでしょうか

投稿2020/07/17 12:17

編集2020/07/17 12:19
y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2020/07/17 12:27

あと、do {} while()があってない。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問