Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
đê bài là tìm nghiệm của phương trình bậc 2
nhưng tại sao khi em nhập số thực a ,b,c ở cửa sổ console thì không hiện ra kết quả .em mong mọi người giải đáp thắc mắc của em , em cảm ơn ạ .
đây là code của em ạ :
#include<iostream>
#include<cmath>
using namespace std;
double detal(double a,double b,double c)
{
double detal;
detal=b*b-4*a*c;
return detal;
}
int main()
{
cout<<"ax^2+bx+c=0"<<endl;
double a;
cout<<" hay nhap so a: ";
cin>>a;
double b;
cout<<" hay nhap so b: ";
cin>>b;
double c;
cout<<" hay nhap so c: ";
cin>>c;
double T=detal(a,b,c);
const int a1=a;
const int b1=b;
const int c1=c;
switch (a1)
{
case 0:
{
switch (b1)
{
case 0:
{
switch (c1)
{
case 0:
{
cout<<" vo so nghiem ";
break;
}
default:
{
cout<<" vo nghiem ";
break;
}
}
default :
{
cout<<"phuong trinh co nghiem duy nhat x = "<<-c/b;
break;
}
}
}
}
default :
{
if(T>0)
{
cout<<"phuong trinh co 2 nghiem \n";
cout<<" x1 = "<<(-b+sqrt(T))/2*a<<endl;
cout<<" x2 = "<<(-b-sqrt(T))/2*a<<endl;
}
else if (T=0)
{
cout<<" phuong trinh nghiem kep x = "<<-b/2*a;
}
else if (T<0)
{
cout<<" phuong trinh vo nghiem ";
}
break;
}
}
return 0;
}
#include<iostream>
#include<math.h>
using namespace std;
double detal(double& a, double& b, double& c)
{
double detal = pow(b, 2) - 4 * a * c;
return detal;
}
int main()
{
cout << "ax^2+bx+c=0" << endl;
double a;
cout << " hay nhap so a: ";
cin >> a;
double b;
cout << " hay nhap so b: ";
cin >> b;
double c;
cout << " hay nhap so c: ";
cin >> c;
const int a1 = (double)a;
const int b1 = (double)b;
const int c1 = (double)c;
double T = detal(a, b, c);
switch (a1)
{
case 0:
{
switch (b1)
{
case 0:
{
switch (c1)
{
case 0:
{
cout << " vo so nghiem ";
break;
}
default:
{
cout << " vo nghiem ";
break;
}
}
default:
{
cout << "phuong trinh co nghiem duy nhat x = " << -c / b;
break;
}
}
}
}
default:
{
if (T > 0)
{
cout << "phuong trinh co 2 nghiem \n";
cout << " x1 = " << (-1 * b + sqrt(detal(a, b, c)) / (2 * a))<< "\n";
cout << " x2 = " << (-1 * b - sqrt(detal(a, b, c)) / (2 * a));
}
else
if (T == 0)
{
cout << " phuong trinh nghiem kep x = " << -b / 2 * a;
}
else
if (T < 0)
{
cout << " phuong trinh vo nghiem ";
}
break;
}
}
return 0;
}
sai nhé hay thử cho a=b=c=0 xem đã sai ngay từ đầu rồi
dùng switch ko hợp lý hay quay lại dùng if thành thạo đã
muốn dùng switch thì ko nên làm thế này