使用C语言生成0到1之间的rand数的问题

Yon*_*ing 1 c

我试图用rand()函数生成一些数字,如下所示:

int main()
{
    int i=0
    for(i=0;i<20;i++)
    {
    printf("%f\n",rand_md());
    }
    return 0;
}



float rand_md()
{
    return (float)rand()/(RAND_MAX+1.0);
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行gcc rand.c时,我得到如下错误:rand.c:在函数'main'中:rand.c:21:警告:格式'%f'期望类型'double',但参数2有类型'int'randc.c:顶层:rand.c:36:错误:'rand_md'randc的冲突类型:21:错误:先前的'rand_md'隐式声明在这里

我的代码出了什么问题?

最好的祝福,

zen*_*azn 6

当您使用函数而不首先声明它时,C将假定它返回一个int.要解决此问题,您必须rand_md在调用之前声明方法签名main().

main在头文件之前或头文件中添加这样的内容:

float rand_md();
Run Code Online (Sandbox Code Playgroud)