函数 srand、rand 和 system 的隐式声明
Implicit declaration of functions srand, rand and system
试图解决一个练习,我必须每 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;
}
这些是我的结果:
这是测试脚本检查的内容:
由于我看不到自己的错误,任何帮助将不胜感激。
您未能#include <stdlib.h>
。因此,您调用的函数被假定为接受未知数量的参数和 return 类型 int
的值。这会导致未定义的行为。
将 #include <stdlib.h>
放在文件的顶部。
我遇到了类似的问题。我的代码已编译,但收到警告消息。
// Selection sort
#include <stdio.h>
#include <math.h>
int main()
{
int list[100], i;
for(i = 0 ; i < 100; i++) {
list[i] = ( rand()%99 + 1 );
printf("%d ", list[i]);
} printf("\n");
return 0;
}
编译的时候,
gcc -o selection_sort selection_sort.c -lm
selection_sort.c: In function ‘main’:
selection_sort.c:11:15: warning: implicit declaration of function ‘rand’; did you mean ‘nanl’? [-Wimplicit-function-declaration]
list[i] = ( rand()%99 + 1 );
^~~~
nanl
添加后 <stdlib.h>
警告信息消失了。
试图解决一个练习,我必须每 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;
}
这些是我的结果:
这是测试脚本检查的内容:
由于我看不到自己的错误,任何帮助将不胜感激。
您未能#include <stdlib.h>
。因此,您调用的函数被假定为接受未知数量的参数和 return 类型 int
的值。这会导致未定义的行为。
将 #include <stdlib.h>
放在文件的顶部。
我遇到了类似的问题。我的代码已编译,但收到警告消息。
// Selection sort
#include <stdio.h>
#include <math.h>
int main()
{
int list[100], i;
for(i = 0 ; i < 100; i++) {
list[i] = ( rand()%99 + 1 );
printf("%d ", list[i]);
} printf("\n");
return 0;
}
编译的时候,
gcc -o selection_sort selection_sort.c -lm
selection_sort.c: In function ‘main’:
selection_sort.c:11:15: warning: implicit declaration of function ‘rand’; did you mean ‘nanl’? [-Wimplicit-function-declaration]
list[i] = ( rand()%99 + 1 );
^~~~
nanl
添加后 <stdlib.h>
警告信息消失了。