我试图用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'隐式声明在这里
我的代码出了什么问题?
最好的祝福,
当您使用函数而不首先声明它时,C将假定它返回一个int.要解决此问题,您必须rand_md在调用之前声明方法签名main().
main在头文件之前或头文件中添加这样的内容:
float rand_md();
Run Code Online (Sandbox Code Playgroud)