- ベストアンサー
ヌメロンのプログラム
C言語で3桁ヌメロンをつくりたいと思うのですが プログラムが思いつきません (ヌメロンは番組でやっているのとルールは同じです でもシャッフルやダブルなどのアイテムはいりません 数字も完全ランダムでいいです) ソースコードかフローチャートなどヒントになる ものを教えてください よろしくお願いします
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
作りたいのは 出題側? 解答側? 出題側なら、 [1]まず0..9からランダムに3つ選ぶ関数を作ってみては。 # それができんようなら前途多難です。 [2]お次は解答者の入力したguessに対し、EAT,BITE数を返す関数。 [3] 2の結果が3-EAT となるまで繰り返す。 ※ このように「問題を分割する」ことができないとプログラムは書けません。
その他の回答 (4)
- qhtsige
- ベストアンサー率45% (9/20)
つくってみたんですがどうやら乱数をつくるところで間違ってしまっているようで srand((unsigned)time(NULL));//初期化 kotae1=rand() &9+1;//答え1桁目 kotae2=rand() &9+1;//答え2桁目 kotae3=rand() &9+1;//答え3桁目 kotae=kotae1+kotae2*10+kotae3*100;//答え こうつくってもたまに8とか22とかの1桁や2桁の数字が出てきてしまいます 乱数範囲指定のやり方はこれであってますよね?? ・1から9までの1桁の乱数がほしいとき kotae1=rand() %9+1 ・001から999までの3桁の乱数がほしいとき、上例の1桁の乱数式を正しくしても良いが、簡単に; kotae=rand() %999+1; ・000から999までのときは、kotae=rand() %1000; %は余りを求めること。ちなみにrand() は0から最大符号なし整数65535を生成する。
お礼
乱数範囲指定についてよくわかりました! 回答ありがとうございました
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 乱数はうまくつくれているのですが > 数字がかぶってしまいます > どうすればいいでしょうか? それ考えるのがプログラミングちゃうんかい。 かぶらなくなるまで乱数生成を繰り返せばいいでしょうに。
お礼
多分できました! 回答ありがとうございました
- notnot
- ベストアンサー率47% (4900/10358)
>乱数範囲指定のやり方はこれであってますよね?? 方法は2つあって、 1: Cの入門書をしっかり読み込んで、一通りの知識を身につけた上で、しっかり自分で考える 2: 適当な検索語で検索する。今回だと、「C 一桁 乱数」 プログラミング力をつけたいなら、1で、とりあえず動けば良いなら、2で。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 乱数範囲指定のやり方はこれであってますよね?? 訊くまでもない。やってみればわかる。 #include <stdio.h> #include <stdlib.h> int main() { int i; for ( i = 0; i < 50; ++i ) printf("%d",rand()&9+1); return 0; } 0-9がデタラメに並びましたか?
補足
乱数はうまくつくれているのですが 数字がかぶってしまいます (例 225、484など) どうすればいいでしょうか? 簡単なことを何度も何度も質問して申し訳ありません
補足
つくってみたんですがどうやら乱数をつくるところで間違ってしまっているようで srand((unsigned)time(NULL));//初期化 kotae1=rand() &9+1;//答え1桁目 kotae2=rand() &9+1;//答え2桁目 kotae3=rand() &9+1;//答え3桁目 kotae=kotae1+kotae2*10+kotae3*100;//答え こうつくってもたまに8とか22とかの1桁や2桁の数字が出てきてしまいます 乱数範囲指定のやり方はこれであってますよね??