• ベストアンサー

C言語 乱数

C言語 乱数 プログラミングの宿題なのですが、よく分かりません。教えていただける方、よろしくお願いします。 ・表示する文字数の長さは12とする。 ・表示する文字は毎回ランダムで表示すること。 ・文字は英字のうち、小文字のみとする。 ・プログラムにrandom()を使うこと。 ・プログラムにsrandom()を使うこと。 よろしくお願いします。

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

  • ベストアンサー
  • MOSUKUN
  • ベストアンサー率100% (2/2)
回答No.2

プログラムを組んでみたので参考にしてください。 ------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> void main(){ char strings[13]; /*文字列を入れる配列*/ int show_count; /*文字列を表示する回数*/ int i; /*for で使うカウンター*/ /* srand に time( NULL ) を与えて プログラムを起動するたびに rand() が違う値を返すようにする。*/ srand( time( NULL ) ); /*文字の表示回数を10回に指定(ここは好きに変えてください)*/ show_count = 10; while( show_count != 0 ){ show_count--; /*strings に アルファベットの小文字 a ~ z を rand() を使って ばらばらに指定する*/ for( i = 0; i < 12; i++ ){ strings[i] = 'a' + rand()%( 'z' - 'a' ); } /*文字列なので配列の最後に文字列の終わりを表す0を入れる*/ strings[12] = 0; /*文字列の表示*/ puts( strings ); } }

sunraise
質問者

お礼

とても分かりやすい解説、ありがとうございました! 先生に質問しても、教えている人数が多いせいか、あまりよく教えてくれないもんで・・・ 本当にありがとうございました!

その他の回答 (1)

回答No.1

初歩的なプログラムです。 どこがよくわからないのか分からないので、何を教えればいいのかわかりません。 ま、表示する文字がランダムというのがどの程度のレベルでランダムかというのが問題文からは明確じゃないので、どういう解釈にも受け取れますが…… 1.毎回12文字すべてをランダムに生成して表示 2.あらかじめ用意した文字列を起動毎にランダムに表示 3.部分文字列を用意してランダムに結合して表示 とか…… random()関数は乱数の発生に用います。0~RAND_MAXの数字をランダム(厳密には数学的法則に基づいた数字だけど)に生成します。これで取り出した乱数を用いてランダムに表示しろということですね。 srand()関数はrandom()関数で生成する乱数の初期化に使います。これを使わないとrandam()関数は起動毎に毎回同じ順番で決まった乱数を出してくるので、乱数の意味がなくなってしまいます。 ……というところで、基本的なヒントは上げられたと思うので、自分で考えて作ってください。

関連するQ&A

  • 乱数発生関数randomなど

    random, srandom, initstate, setstate で乱数を生成できることを知りましたが、運用方法がよくわかりません。c言語に詳しい方、for文を使って乱数を5個ほど表示させるプログラムを示してください。

  • c言語乱数について

    トランプのシャッフルと同様な操作をコンピュータで行いたい。52枚のトランプを配列に置き換え、1~52の乱数を割り当てる。ただし発生した乱数はすでに割り当て済みの数である場合は、まだ割り当てていない乱数が出るまで繰り返すものとする。 というプログラムをC言語でつくりたいのですがまったくわからないので誰か教えてください。お願いします。

  • 乱数をC言語で

    乱数をC言語でプログラムしたいのですが、 rand関数を使わずに作らなきゃいけないという事なんですが 一度作ってはみたもののうまく乱数にできずに困っています できれば教えていただきたいです

  • プログラミングの乱数

    c言語、c++の乱数rand()の使い方がよくわかりません。わかりやすい説明をお願いします。 あと、プログラミングが得意な方にお願いです。 [0,1]乱数で平均と分散を求めるプログラムを配列なしで作ってください。

  • C言語のプログラムを教えて欲しいです。

    大学でC言語のプログラムを組んでくる課題が出たのですが、 どう組めばいいのかさっぱりわかりません。 構想としては、 『乱数で適当にいくつかの数を選び、キーボードから適当に打ち込んだ数字で、 乱数で出してきた数と一致すれば勝てる』というような、 宝くじ的なプログラムを組みたいと思っています。 選ぶ乱数の範囲は10000~30000で、選ぶ個数は10個ほど。 キーボードからは数字の範囲は同じで打てる数は5個ほどで考えています。 どのように組めばよいか教えてください。 できれば、このプログラムを遊ぶためのルールや、打ち込んだ数字が当たっているかなどを DOS窓上に表示する方法も教えていただけると嬉しいです。 よろしくお願いします。

  • プログラミング、C言語について・・・

    プログラミング、C言語について・・・ 大学の宿題でわからないところがありまして・・・ 課題は、 キーボードから入力した数だけ、*(アスタリスク)を表示するようなプログラミングを作成せよ また、表示を見やすくするため*が10個表示されるたびに改行を入れよ。 なんですが とくにキーボードから入力した数だけ、*(アスタリスク)を表示するようなプログラミング がわからなくて困ってます。 あとこのプログラミングではforではなくてwhileでお願いします。 わがまま多いですがよろしくお願いします。

  • c言語がわからなく、教えていただきたいです。

    待ち行列のプログラミング 待ち行列をC言語でプログラミングしたいのですが、わからなくて困っています!! 誰か助けて下さい!! 2工程、3機械から成っている。2種の製品A,Bを製造している。第2工程では機械が2つあり、待ちが少ない方に進む。 ジョブ数は500、加工時間は指数乱数、到着間隔はポアソン到着、納期は加工時間*納期係数(10)です。 この待ち行列のプログラムを教えていただきたいです。 お願いいたします。

  • C言語のプログラミングについてです><

    今C言語のプログラミングの勉強をしているのですが、わからないプログラムがでてきたので教えてくださる方がいらっしゃれば、ご教授願いたいです。 数当てゲームの作成 1~9(0は除く)のなかから4つの異なる数字をランダムで選択し、4桁の数をつくる。ユーザは4つの数字の並びを入力して、作られた数を当てる。 ユーザの入力した数と作られた数を比較して、同じ数字が同じ桁にある場合は"Hit"というヒントを与える。また、同じ数字が異なる桁にある場合は"Blow"というヒントを与える。すなわち、作られた数が5849で、ユーザが4829という数値を入力した場合、"2 Hit 1 Blow"というヒントが表示されるようにする。 ユーザは10回まで、入力するチャンスが与えられる。 といった感じのプログラミングなんですが、C言語初心者である自分にはまったくわかりません; ; どなたかわかる方がいらっしゃれば、助けていただけないでしょうか?よろしくお願いします!

  • c言語 random

    c言語でrandom関数を使って乱数を生成してください

  • プログラミングC言語 サイコロ問題

    プログラミングC言語の問題でC言語のrand関数を利用して33回のサイコロ型乱数を出力するプログラムを書きなさい。という問題が出ました。ソースコードを教えてください。

専門家に質問してみよう