プロが教えるわが家の防犯対策術!

C言語で3桁ヌメロンをつくりたいと思うのですが
プログラムが思いつきません
(ヌメロンは番組でやっているのとルールは同じです
でもシャッフルやダブルなどのアイテムはいりません
数字も完全ランダムでいいです)
ソースコードかフローチャートなどヒントになる
ものを教えてください
よろしくお願いします

A 回答 (5件)

作りたいのは 出題側? 解答側?



出題側なら、
[1]まず0..9からランダムに3つ選ぶ関数を作ってみては。
# それができんようなら前途多難です。

[2]お次は解答者の入力したguessに対し、EAT,BITE数を返す関数。

[3] 2の結果が3-EAT となるまで繰り返す。

※ このように「問題を分割する」ことができないとプログラムは書けません。

この回答への補足

つくってみたんですがどうやら乱数をつくるところで間違ってしまっているようで
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桁の数字が出てきてしまいます
乱数範囲指定のやり方はこれであってますよね??

補足日時:2012/12/08 01:53
    • good
    • 0

つくってみたんですがどうやら乱数をつくるところで間違ってしまっているようで


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を生成する。
    
    • good
    • 0
この回答へのお礼

乱数範囲指定についてよくわかりました!
回答ありがとうございました

お礼日時:2012/12/09 23:23

> 乱数はうまくつくれているのですが


> 数字がかぶってしまいます
> どうすればいいでしょうか?

それ考えるのがプログラミングちゃうんかい。
かぶらなくなるまで乱数生成を繰り返せばいいでしょうに。
    • good
    • 0
この回答へのお礼

多分できました!
回答ありがとうございました

お礼日時:2012/12/12 21:23

>乱数範囲指定のやり方はこれであってますよね??



方法は2つあって、
1: Cの入門書をしっかり読み込んで、一通りの知識を身につけた上で、しっかり自分で考える
2: 適当な検索語で検索する。今回だと、「C 一桁 乱数」

プログラミング力をつけたいなら、1で、とりあえず動けば良いなら、2で。
    • good
    • 1

> 乱数範囲指定のやり方はこれであってますよね??



訊くまでもない。やってみればわかる。

#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など)
どうすればいいでしょうか?
簡単なことを何度も何度も質問して申し訳ありません

補足日時:2012/12/08 14:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A