"C2660: 'srand' : 関数に 0 個の引数を指定できません。" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2660: 'srand' : 関数に 0 個の引数を指定できません。

ソース(バグ有り):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) 
{
//1から100の乱数を表示
int n;
srand();
n = rand();
printf("乱数値 = %d\n", n%100+1);

return 0; }


原因:
srand 関数に引数が渡されていません。srand 関数には引数とし seed が必要です。seed は擬似乱数ジェネレーターです。

対処:
srand 関数に引数渡します。ある程度ランダムな値である必要があるため、時刻をseedとして渡しています。


ソース(修正済み):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) 
{
//1から100の乱数を表示
int n;
srand((unsigned)time(NULL));
n = rand();
printf("乱数値 = %d\n", n%100+1);

return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]