重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
int x,y,n=0; // 这个语句只会初始化n为0,不会初始化x,y为0。
在遵义等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站设计 网站设计制作按需策划设计,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,外贸网站制作,遵义网站建设费用合理。
没被初始化的变量x、y,其值随机。所以程序执行会有问题。
---
至于函数重载,C语言不支持,C++才支持。
查看codeblocks所用math.h,只有一个名为fabs的函数,即
_CRTIMP double __cdecl fabs (double);
还有一个名为fabsf的函数:
extern float __cdecl fabsf (float x);
因为#include cmath指令包含的是文件math.h,而math.h继承至C语言,C语言不支持函数重载,所以fabs不会是重载函数。
#includemath.h只应该出现一次。
如果你在主文件中出现#includemath.h,与#include"abc.c",
但是在abc.c文件中又出现#includemath.h,那么该函数就被定义了两次,导致出错。
特别是在多个文件中都有#include语句时很容易出这个问题。
这是我遇到过的情况。也许还有其它原因。
#include stdio.h
#include stdlib.h
#include math.h
int main(void)
{
int a,b,c,d;
double x1,x2;
printf("输入a,b,c(a不为0,数据间以空格隔开):");
scanf("%d %d %d",a,b,c);
d=b*b-4*a*c;//b^2在c里面不是平方 ^异或运算符
if(d=0)//用整形比较才比较精确
{
x1=(-b+sqrt((double)d))/(2.0*a);//说是有多个参数 可以float 可以double 你输入int的编译器不知道转换为哪一种
x2=(-b+sqrt((double)d))/(2.0*a);
printf("方程的根为:%f,%f.\n",x1,x2);
}
else
{
printf("方程无实根.\n");
}
system("pause");
return 0;
}