ジョーカーを覗いたトランプ52枚を想定していて、最初に持っているカードの枚数を入力したあとに、スペードは'S', ハートは'H', クラブは'C', ダイヤは'D'と入力して、

C言語関連 | プログラミング27閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

1

1人がナイス!しています

その他の回答(2件)

1

break;が足りていません。例えば switch(X){ case 1: /*合致処理1*/;break; case 2: /*合致処理2*/; case 3: /*合致処理3*/; case 4: /*合致処理4*/; } /*処理Z*/; というプログラムだと、X==1の時は合致処理1を行った後、break;があるのでswitch文の閉じカッコに飛び、続けて処理Zが行われます。 対して、X==2の場合は、合致処理2の後、合致処理3も4も行われます。 合致時の処理を終える際には、break;を書く必要があります。

1人がナイス!しています

1

デバッガーで流れを追いかけながら見てみるとわかるかと思いますが、 case文の後にbreak;が入ってないので、最初の判定であればSを入れるとS/H/C/D全ての分岐を通過しますし、次の判定であればb[0][0]が0であればS 1,H 1,C 1,D 1と4つまとめて出てしまいますね。

1人がナイス!しています