ここから本文です

C言語の質問なんですが、課題で「srand()をfor文の前に書かなければならない理由を...

snct_173さん

2012/8/2915:27:54

C言語の質問なんですが、課題で「srand()をfor文の前に書かなければならない理由を答えなさい」とあるのですが、なんと答えればいいのかわからないので教えてくださいm(_ _)m

このプログラムです。
「プログラムの実行ごとに乱数が異なるように作りなさい」という内容です。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int data[50],n,i;
scanf("%d",&n);
srand(time(NULL));
for(i=0;i<n;i++)
data[i]=rand()%10;
for(i=0;i<n;i++)
printf("%d,",data[i]);
return(0);
}

閲覧数:
315
回答数:
1

違反報告

ベストアンサーに選ばれた回答

js1c44さん

2012/8/2915:47:30

よほどの回数で無い限りループは一瞬で終了します。
つまりループ中はtime(NULL)の値が常に同じということです。
同じ値で初期化すると毎回同じ乱数が発生してしまいますので、
ループの外で1回初期化すればOKということです。

私の説明が分かり辛かったら、
http://www9.plala.or.jp/sgwr-t/lib/srand.html
を見てください。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。