使用Ubuntu18.04编辑一个文件10243.c如下:
#include <stdio.h>
#include <math.h>
int main()
{
long int i;
long double x, y;
for (i = 1; i < 100000; i++)
{
x = sqrt(i + 100); /*x为加上100后开方后的结果*/
y = sqrt(i + 268); /*y为再加上168后开方后的结果*/
if (x*x == i + 100 && y*y == i + 268)
/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n", i);
}
return 0;
}
在这里已经有头文件math.c,但使用gcc进行编译是仍会出现sqrt未被定义,如下图
解决方法:
在编译时输入gcc 10243.c -lm
即在使用gcc编译时,在后面加上-lm,用于链接数学函数库,不然就会报错。