組だけ使用するものとし、同じカードが重複してひかれることは許されない。プログラムを実行し直すたびに、異なるカードが出るようにすること。//乱数を初期化する。この処理がないと乱数が初期化されずに同じ結果がでる。//乱数を生成してスートを決めて変数に格納する。//乱数を生成して数字を決めて変数に格納する。0;}あれから考えてみましたが、やはり分かりません。6年前ソース部分はcodeタグで囲っていただきたいです数値とスート別々に管理するのではなく、構造体で管理するのはいかがでしょうか?C言語を使うと自分の足を誤って撃ち抜いてしまうことがある。C++を使えばそのような間違いを犯しにくくなる。やってしまったときには足全体が無くなる。suit[4]={1,2,3,4};のところをD,S,Q,Hにしたいのですが、どうすれば良いですか?ちなみにchar型にしても出来ません。結果が重複しないため、52回実行すると自動的に終了したい。出来るのならば教えてください。52回にしたいのであれば無限ループではなく有限ループに変更するだけで対応可能です。ソースを読んだところpullを行うたびにsrandしてしまっていますがこれは意図してやっていますか?C言語を使うと自分の足を誤って撃ち抜いてしまうことがある。C++を使えばそのような間違いを犯しにくくなる。やってしまったときには足全体が無くなる。};にするのはどうでしょう。6年前KORYUOHさんこれではいけないのですか?有限ループがわかりません・・・。6年前これでも可能です。無限ループでやりたいのであればカウンターでbreakさせなければなりませんが。有限ループはforでやる方法とwhileでやる方法があります。]C言語を使うと自分の足を誤って撃ち抜いてしまうことがある。C++を使えばそのような間違いを犯しにくくなる。やってしまったときには足全体が無くなる。さんが前に言われている>もし、連続して同じカードを引きたくないのであれば前の値を保持しておき同じであるならば生成しなおす方法をお勧めしますが、>すべて重複したくないのであるならば配列をシャッフルしてしまうのがいいと思います。この2つの方法のどちらかで行うのだと思いますが、いつまでたってもその方向に進んでいきませんね。suit[4]={1,2,3,4};のところをD,S,Q,Hにしたいのですが、どうすれば良いですか?>ちなみにchar型にしても出来ません。};とか書きたいのでしょうか?>52回>有限ループがわかりません・・・。);if(strcmp(out,"\0")==0)break;printf("%s\n",out);}}ただの超絶右留斗羅天才プログラマーです。プログラマーさんが他の人のやっていることを台無しにしそうなのでコメントさせていただきました。面倒でしょうが、答えに誘導する形での回答をお願いします。しても、直接的なコードが必要だと思うのならプレイベートメッセージで他の人に確認をとるとか協調をお願いします。【補足】あっ、私に強制権はありませんのでお願いになります。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。ミクプラは自由にリンクできます。