编译C语言时遇到了问题,求助!
小弟想在linux下学C语言,可是编译的时候不成功.是不是函数名不对啊?还是调用函数的方法错了?请各位大哥大姐帮忙啊!下面是小代码:
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(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);
}
结果:
/tmp/ccIms7yH.o(.text+0x90): In function `main':
fffff.c: undefined reference to `sqrt'
collect2: ld 返回 1
怎么回事啊? main() -------->没有定义类型 正确的int main()
sqrtmath.h 没有定义 要定义一下 #define sqrt(x) x*x #include <stdio.h>
#include <stdilb.h>
#include <math.h>
#define sqrt(x) x*x
int main() {
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(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);
return(0);
} 谢谢,成功了 main() -------->没有定义类型 正确的int main()
sqrtmath.h 没有定义 要定义一下 #define sqrt(x) x*x
"#define sqrt(x) x*x"是什么意思? 是不是所有类似的情形都要这么定义一下?拜托举个例子好吗? #define 是预处理宏
也不是所有 这个方便你定义一些简单的算法
也可以用定义函数表示
int sqrt(x){
int x;
x=x*x;
} 我照你的代码编译了一下,是可以编译了,可结果不对啊.
#include<stdio.h>
#include<math.h>
#define sqrt(x) x*x
main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(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);
} #include<stdio.h>
#include<math.h>
#define sqrt(x) x*x
main()
{
float a,b,c,s,area;
int x;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
x=s*(s-a)*(s-b)*(s-c);
area=sqrt(x);
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
} #include<stdio.h>
#include<math.h>
main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
x=s*(s-a)*(s-b)*(s-c);
area=sqrt(x);
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
int sqrt(x){
int x;
x=x*x;
} 你有没有 输入错误.... sqrt 是开根号啊...我输3,4,5进去,得到1296.. 你在自己机上编译试试看行不行? 你慢慢试吧:shock::shock: 你这是C还是C++我看了有点 麻痹
页:
[1]
2