用c++编程时出现错误,不知如何修改?

来源:百度知道 编辑:UC知道 时间:2024/09/21 11:18:44
错误提示为:\c++\Cpp2.cpp(18) : error C2146: syntax error : missing ';' before identifier 'cout'!
程序如下:
#include <math.h>
#include <iostream.h>
void main()
{
int a,b,c;
double f;
cout<<"输入三个整数a,b,c。组成二元一次方程,x1,x2为方程的两根"<<endl;
cin>>a>>b>>c;
f=b*b-4*a*c;
cout<<"f="<<f<<endl;
if(a!=0)
{
if(f=0)
cout<<"x1=x2="<<-b/(2*a)<<endl;
else if(f>0)
cout<<"x1="<<(-b+sqrt(f))/(2*a)<<", x2="<<(-b-sqrt(f))/(2*a)<<endl;
else (f<0)
cout<<"x1="<<(-b)/(2*a)<<"+"<<sqrt(-f)/(2*a)<<"i, x2="<<(-b)/(2*a)<<"-"<<sqrt(-f)/(2*a)<<"i"<<endl;
}
else
cout<<"a不能为零,请重新输入"

#include <math.h>
#include <iostream.h>
void main()
{
int a,b,c;
double f;
cout<<"输入三个整数a,b,c。组成二元一次方程,x1,x2为方程的两根"<<endl;
cin>>a>>b>>c;
f=b*b-4*a*c;
cout<<"f="<<f<<endl;
if(a!=0)
{
if(f=0)
cout<<"x1=x2="<<-b/(2*a)<<endl;
else if(f>0)
cout<<"x1="<<(-b+sqrt(f))/(2*a)<<", x2="<<(-b-sqrt(f))/(2*a)<<endl;
else if(f<0)//这儿缺少一个if
cout<<"x1="<<(-b)/(2*a)<<"+"<<sqrt(-f)/(2*a)<<"i, x2="<<(-b)/(2*a)<<"-"<<sqrt(-f)/(2*a)<<"i"<<endl;
}
else
cout<<"a不能为零,请重新输入"<<endl;

}

应该是你的a,b,c都是int,所以x1,x2都转换成了int,把a,b,c都写成double就行了