函数srand,rand和system的隐式声明

The*_*a02 4 c linux random system srand

试图解决一个练习,我必须每隔5秒在35°C和-10°C之间打印一个随机温度值,然后是日期和时间.一切看起来都按预期工作,但是当我在测试脚本中输入代码时,我会得到以下错误.

隐式声明函数错误 这是我的代码:

#include<stdio.h>
#include<unistd.h>
#include<time.h>
#define temp_max 35
#define temp_min -10
#define FREQUENCY 5

int main(void)
{
srand(time(NULL));
while(1)
{
int number = rand() % (temp_max*100 - temp_min*100) + temp_min*100;
double temperature = (double) number;
temperature /= 100;
printf("Temperature=%1.2f @ ",temperature);
fflush(stdout); 
system("date");
sleep(FREQUENCY);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

这些是我的结果:

这些是我的结果

这是测试脚本检查的内容:

这是测试脚本检查的内容

由于我无法看到自己的错误,任何帮助将不胜感激.

dbu*_*ush 10

你失败了#include <stdlib.h>.因此,您调用的函数被假定为接受未知数量的参数并返回值类型int.这会导致未定义的行为.

放在#include <stdlib.h>文件的顶部.