求看下代码哪错了。c语言的

青鸾之旅 发布于 2013/03/05 20:41
阅读 492
收藏 0

结果显示的是tmp/ccq3nw3B.o: In function `main':
text.c:(.text+0x2d): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status

#include <stdio.h>

#include <math.h>


main()
{
int i,m;
float x[m],xa1,xa2,y,y2;
scanf("%d",&m);
for(i=0;i<=19;i++)
{
scanf("%f",&x[i]);
}
for(i=0;i<=19;i++)
{
xa1 = xa1+x[i]; xa2 = xa1/20;

}
for(i=0;i<=19;i++)
{
y += (xa2-x[i])*(xa2-x[i]);
}
y2 = sqrt(y);
printf("standard is :%f\n",y2);
}
加载中
0
SErHo
SErHo
编译的时候带上 -lm 参数,比如:
gcc -lm -o test test.c

0
青鸾之旅
青鸾之旅
是因为系统的原因造成的么?
0
青鸾之旅
青鸾之旅

没有用 。。显示代码如下

the result is :3.141500dark_h@ubuntu :~/Desktop/work.c$ gcc -lm -o UNPy.c
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status
dark_h@ubuntu :~/Desktop/work.c$ gcc -lm -o test UNPy.c
gcc: error: UNPy.c: No such file or directory
dark_h@ubuntu :~/Desktop/work.c$ gcc -lm -o UNpy UNPy.c
gcc: error: UNPy.c: No such file or directory
dark_h@ubuntu :~/Desktop/work.c$ gcc -lm UNpy.c -o UNpy
/tmp/ccfk7p8w.o: In function `main':
UNpy.c:(.text+0x10a): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status


Yu_Yang
Yu_Yang
这种链接库的顺序是有讲究的,-lm放到编译命令的最后,建议你看看CSAPP中讲链接的那一章。
0
schama
schama
int main(int argc, char* argv[])
{
    //...
    return 0;
}
0
优游幻世
优游幻世

In C, only the double version of this function exists with this name

好像要将变量声明成double,否则就用强制转换。。。

0
0
gnefil.nil
gnefil.nil

把-lm 放到最后!!! gcc UNpy.c -o UNpy -lm

还有,定义x[m]时m还没赋值,这样做很危险

从代码来看x大小应该是20,还不如直接定义成20~~

0
8
870177103
/* 要用强制转换绕过编译器的类型检查,但是大类型变小类型可能会丢失数据 math.h内容"double _Cdecl sqrt (double x);" 你可以通过是否定义SQRT来测试以下代码 */ #include #include //#define SQRT(a) ((float)sqrt((double)(a))) int main () { float x ,y ; scanf("%f",&y); #ifdef SQRT printf("%f ,",x=SQRT(y)); #else printf("%f ,",x=sqrt(y)); #endif printf("%f\n",x+1);//防优化和谐 return 0; } /* 另外我用的编译器最多对此warning,不会产生error,而且你这个编译器对x[m]没有报错我已经无力了 */
0
每天打起精神即可
每天打起精神即可

float x[m]

c语言里数组长度不是固定的么?没法自定义.

返回顶部
顶部