サイトマップ / C言語講座出入り口総目次目次:関数>srand( )とrand( )

青い直線

srand( )とrand( )

青い直線

[関数の戻り値]←このソース→[ブーリアン型]

/* srand( )とrand( ) */

/* 今日は乱数に関する二つの標準ライブラリ関数について学びます。

    #include <stdlib.h>
    void  srand(unsigned int seed);

    例:srand(seed);

この関数は乱数のシード(種)を設定します。今回は年齢をシードにしていますが、普通はtime( )かclock( )で時間を取得してそれをシードにします。時間に関する標準ライブラリ関数は後に学びます。シードを設定しないといつも同じ系列で乱数が発生します。

    #include <stdlib.h>
    int rand(void);

    例:n = rand(  );

この関数が乱数を発生させます。範囲は0から32767です。今回のプログラムは年齢をシードにして、0から6までの整数の乱数を発生させ、それを配列の添字として使います。今回のプログラムが何をするものかは実行して確かめて下さい。 */

/* ここからソースプログラム */

#include <stdio.h>
#include <stdlib.h>        /* srand( ) rand( ) で必要 */

#define NUM_STR 7

void main(void);

char *string[ ] = {"情熱的に", "ものすごく", "大変", 
                   "ある程度", "", "ほんの少し", "ごくわずかに"};

void main(void)
{
    unsigned int seed;
    int n;

    printf("年齢を入力して下さい\t");
    scanf("%u", &seed);    /* %u:seed は unsigned int 型 */
    printf("\n");
    srand(seed);           /* シードを設定 */
	
        /* ここで 0 から 6 までの整数の乱数を発生 */
    n = rand(  ) % NUM_STR;

    printf("彼女はあなたを%s愛している!\n", string[n]);
}

/* ここまでソースプログラム */

[関数の戻り値]←このソース→[ブーリアン型]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:関数>srand( )とrand( )