01/10/2018, 15:47
Nhờ chữa lỗi code tính nghiệm của phương trình bậc 2
Em làm bài tập về tính và in nghiệm của phương trình bậc 2 .
Khi em cài đặt x1 x2 dưới dạng tham biến thì kết quá trả về đúng, nhưng khi cài đặt dạng giá trị trả về của hàm thì chỉ có x2 là trả về đúng, còn x1 bằng rất bé , gần bằng 0. Mọi người cho em hỏi là cài đặt x1 x2 dưới dạng giá trị trả về của hàm như em làm ở đây thì sai ở đâu và sửa lại như thế nào để giải đúng bài toán ạ
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
double nghiem(double a,double b,double c);
double nghiem(double a,double b,double c)
{
double delta,x1,x2;
delta = b*b - 4*a*c;
if (delta <= 0)
{
if (delta< 0) x1= 0 ;
else x1= -b/(2*a);
x2= 0;
return x1,x2;
}
else
{
delta = sqrt (delta) ;
x1= -b - delta; x1= x1/(2*a);
x2= -b + delta; x2 =x2/(2*a);
return x1, x2;
}
}
int main()
{
double a,b,c,x1,x2,d;
cout<<"Nhap a: "; cin >> a;
cout<<"Nhap b: "; cin >> b;
cout<<"Nhap c: "; cin >> c;
d= nghiem(a,b,c,x1,x2);
cout << x1 << endl;
cout << x2 << endl;
system("pause");
}
Bài liên quan
Đầu tiên phải xét hệ số a, nếu a = 0 thì chuyển bài toán thành giải phương trình bậc nhất bx +c = 0; nếu a != 0 thì mới xét tới delta.
delta < 0 thì phuơng trình vô nghiệm mà.
Bài em đang xét là a khác 0 ạ, ý là khi cài đặt x1 x2 dạng tham biến thì trả về kế quả đúng mà vài đặt x1 x2 dạng giá trị trả về thì kết quả x2 đúng mà x1 sai ạ .
Chỉ return được 1 số thôi bạn, viết
x1, x2
tức làx2
(comma op). Để tham biến mới được.Vâng, e cảm ơn