#include<stdio.h>
#include<math.h>
#define EXP 0.00000001
int main()
{
double a = 0.0;
double b = 0.0;
double c = 0.0;
scanf("%lf%lf%lf",&a,&b,&c);
if((a>-EXP)&&(a<EXP))
{
printf("不是一元二次方程组\n");
}
else
{
double disc = b*b-4*a*c;
if(disc<0)
printf("无解\n");
else if(disc>-EXP&&disc<EXP)
{
printf("%lf\n", (-b)/(2*a));
}
else if(disc>0.0)
{
printf("x1 = %lf\n", (-b+sqrt(disc))/(2*a));
printf("x2 = %lf\n", (-b-sqrt(disc))/(2*a));
}
else
{
printf("无解\n");
}
}
return 0;
#include<math.h>
#define EXP 0.00000001
int main()
{
double a = 0.0;
double b = 0.0;
double c = 0.0;
scanf("%lf%lf%lf",&a,&b,&c);
if((a>-EXP)&&(a<EXP))
{
printf("不是一元二次方程组\n");
}
else
{
double disc = b*b-4*a*c;
if(disc<0)
printf("无解\n");
else if(disc>-EXP&&disc<EXP)
{
printf("%lf\n", (-b)/(2*a));
}
else if(disc>0.0)
{
printf("x1 = %lf\n", (-b+sqrt(disc))/(2*a));
printf("x2 = %lf\n", (-b-sqrt(disc))/(2*a));
}
else
{
printf("无解\n");
}
}
return 0;
}
今天在写这个代码的时候犯了很多错误决定把它记下来,以后就不会犯了,
1、今天写的时候在else后面还加了小括号写了判断语句,后来经查得知。else指的本就是除了if内的条件约束范围内的其他东西,所以不用判断。
2、if后面小括号内不能表示并列条件时用逗号,要用逻辑符号&&。
3、使用数学公式需要相应的头文件
4、if判断两个相等时不能直接用"==",要像上述代码中一样用大于负的小于正的一个很接近零的数来代替。
5、写的时候要注意书写规范,不然找错的时候很难找,该缩进的要缩进
6、写的时候要注意逻辑清楚,最好先有一个逻辑再去着手写,不然很容易造成逻辑混乱的错误。
7、表示一个变量的平方要用连乘的形式,“^”表示的是异或
8、