LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 652|回复: 4

请教一个C语言的问题,请大家帮忙看看!

[复制链接]
发表于 2008-7-30 22:01:46 | 显示全部楼层 |阅读模式
# include "math.h"
# include "stdio.h"
main ()
{  float a,b,c,s,area;
    int t=1;
    printf ("请输入三角形的三条边长,中间用逗号隔开");
    scanf ("%f,%f,%f",&a,&b,&c);
    if (t=a+b>c&&a+c>b&&c+b>a)
     {  s=0.5*(a+b+c);
        area=sqrt(s*(s-a)*(s-b)*(s-c));
        printf ("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
        printf ("area=%7.2f\n ",area); }
    else
        printf ("这个不是三角形"); }

[lhd@localhost c]$ gcc tri.c -o tri
/tmp/cc2QoTTc.o: In function `main':
tri.c.text+0x10e): undefined reference to `sqrt'
collect2: ld 返回 1

以上的程序编译时出现错误,sqrt因该是数学函数库里的根号吧,难道在Linux下根号的写法不一样吗?请DX帮个忙,解译一下!谢谢!
发表于 2008-7-30 22:23:07 | 显示全部楼层
试试这个
gcc tri.c -lm -o tri

另外标准库的头文件用<>, 不要用""
回复 支持 反对

使用道具 举报

发表于 2008-7-30 22:25:24 | 显示全部楼层
Link with -lm.

from sqrt manpage
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-30 22:50:24 | 显示全部楼层
原来这样呀,要加个-lm,现在可以了,谢谢楼上的两们DX,还有为什么标准库的头文件用<>, 不要用""?我是初学,有些细节方面还是要弄得清楚点为好!
回复 支持 反对

使用道具 举报

发表于 2008-7-30 23:00:42 | 显示全部楼层
用 “” 代表在当前目录找文件,用 <> 代表在 /usr/include 或者 gcc -Ixxxxx 中的路径找。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表