• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語について)

C言語のプログラムで複数パターンを出力する方法

このQ&Aのポイント
  • C言語のプログラムで複数パターンを出力させる方法について教えてください。
  • このプログラムはコンパイルできますが、まだ勉強不足で複数パターンの出力方法に困っています。
  • どのようにすればC言語のプログラムで複数パターンを出力できるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

int k; の次の行に int m; ってのを足して、 srand( time(NULL)); の次の行に for (m = 0;m < 10;m++) { ってのを足して、 return 0; の前の行に } ってのを足してみよう。

okikayo
質問者

お礼

ありがとう御座いました。最初は、for(....も入っていたんですが{を return分の後に書いていました。まだまだ勉強ぶそくです、助かりました。

その他の回答 (4)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.5

No.4 ですがちょっと間違いました。 見つけた件数の判断方法は修正です。 for (int no = 0, out = 0; no < 総数 && out < パターン出力最大件数; no++){ _ 配列abcからno番目の組み合わせを探して第一引数に格納(組み合わせ例, abc, no); _ if (組み合わせが条件を満たしているか確認(組み合わせ例)) { _ _ 表示(組み合わせ例); _ _ out++; _ } }

okikayo
質問者

お礼

有難うございました。別の意味で参考になります。

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.4

前提として「一回の入力で5件から49件までを入力」としたほうが良いでしょう。 それはそうと 「n個からm個を重複しないで選ぶ」といえば、 数学的にコンビネーション nCm を使って、組み合わせパターンの総数が計算できます。 5C5 = 1 6C5 = 6 7C5 = 21 ... 49C5 = 1906884 つまり入力件数が6件以下だと、どう足掻いてもパターンを10件も表示できません 7件以上であっても、乱数で選ぶとパターン重複の可能性が付きまといます。 というわけで、ちゃんとやろうとするならば int 組み合わせ例[5]; int 総数 = コンビネーション計算(件数, 5); for (int no = 0; no < 総数 && no < パターン出力最大件数; no++){ _ 配列abcからno番目の組み合わせを探して第一引数に格納(組み合わせ例, abc, no); _ if (組み合わせが条件を満たしているか確認(組み合わせ例)) { _ _ 表示(組み合わせ例); _ } } 「no番目の組み合わせ」を探すには、乱数を使っては元も子もないので、 再帰などを活用して漏れなく見つけ出してあげましょう。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

偶数だけ入れてやれ. さておき「パターン」ってなんだ. しかし, もうちょっと「プログラムを読む人」のことを考えて書けないものかなぁ....

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

……ああ、うん、コンパイルはできるけど、入力回数が 50 回超えたらどうなるか考えた方がいいんじゃないかなぁ。

okikayo
質問者

補足

一回の入力で50をこえることはないことを」前提としています。いっかいの入力で10パターン程度の出力をさせるにはソースコードをどう書き換えればいいのでしょうか?

関連するQ&A