一个二次方程求解的有关问题

一个二次方程求解的问题
#include<math.h>
main( )
{float a,b,c,d,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("The equation");
if(fabs(a)<=le-6)
printf("is not a quadratic");
else
{disc=b*b-4*a*c;

if(fabs(disc)<=le-6)
printf("has two equal roots:%8.4\n,-b/(2*a));
else if(disc>le-6)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real root:%8.4f and %8.4f\n",x1,x2);
}
else
{realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots : \n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}}
return 0;}
这是编程的内容,结果显示有错实在找不到,就帮助,下面是build后的内容
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(4) : error C2065: 'scanf' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(5) : error C2065: 'printf' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(6) : error C2065: 'le' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(12) : error C2001: newline in constant
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(13) : error C2143: syntax error : missing ')' before 'else'
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(14) : error C2143: syntax error : missing ';' before '{'
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(14) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(15) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(18) : error C2181: illegal else without matching if
D:\Program Files\Microsoft Visual Studio\MyProjects\if\方程求解.cpp(20) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
执行 cl.exe 时出错.

方程求解.exe - 1 error(s), 0 warning(s),可是我按行找之后还是找不到,求大神帮助!!!

------解决方案--------------------
C/C++ code

#include <stdio.h>//输入输出函数的头文件
#include<math.h>
int main( )//主函数返回类型
{
    float a=0,b=0,c=0,d,disc,x1,x2,realpart,imagpart;
    scanf("%f,%f,%f",&a,&b,&c);//scanf格式输入时要求输入格式与格式控制符中的完全一样,例如输入为2,3,5形式
    printf("The equation ");
    if(fabs(a)<=1e-6)//是阿拉伯数字1e6,不是le6
        printf("is not a quadratic");
    else
    {
        disc=b*b-4*a*c;
        if(fabs(disc)<=1e-6)
            printf("has two equal roots: x1=x2=%8.4f\n", -b/(2*a) );//这里太低端错误了
        else if(disc>1e-6)
        {
            x1=(-b+sqrt(disc))/(2*a);
            x2=(-b-sqrt(disc))/(2*a);
            printf("has distinct real root: %8.4f and %8.4f\n",x1,x2);
        }
        else
        {
            realpart=-b/(2*a);
            imagpart=sqrt(-disc)/(2*a);
            printf("has complex roots: \n");
            printf("%8.4f+%8.4fi\n",realpart,imagpart);
            printf("%8.4f-%8.4fi\n",realpart,imagpart);
        }
    }
    return 0;
}

------解决方案--------------------
槽点真多……

首先,VisualStudio在错误提示上双击可以自动前往错误行——虽然并不是总有效,但大多数情况下都是有效的

其次,懂点英文就能看明白这些错误
“undeclared identifier”未声明的标识符,就是说程序看不懂这是啥玩意,原因出自你没包含scanf函数所属的头文件<stdio.h>
不认识le()是当然的,我猜原文是想写1e-6,即1乘以10的-6次方,一个浮点数的绝对值如果小于这个值则认为该浮点数等同于零。直接写0.000001不就完了么。科学计数法很了不起?编译器表示老子才是定规矩的那个,什么科学计数法只要老子不认可都等于乱码。
缺少单引号括号分号什么的就不用多说了吧?自己去数每个大括号小括号双引号都是不是成双成对的——“printf("has two equal roots:%8.4\n,-b/(2*a));”这语句能通过编译那才真叫见鬼。

最后,如果不是对空间锱铢必较的嵌入式或底层变成,就少用float,因为浮点数字面量默认看做精度较高的double,高精度数据存入低精度类型要损失精度,虽然很多时候也不在乎那点精度但编译器报警很烦人的