01/10/2018, 09:31
Giúp em sửa lỗi sử dụng phép lấy căn "sqrt" ạ
Em có bài giải phương trình bậc 2:
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main () {
int a, b, c, de;
cout <<" Nhap vao 3 bien abc: ";
cin >> a >> b >> c;
de = b*b - 4*a*c;
cout<<" Delta = "<< de << endl;
if (de = 0)
{ cout<< " Phuong trinh nghiem kep x1 = x2 = "<< -b/(2*a) << endl; }
else if (de > 0)
{ cout<<" Nghiem x1 = "<< (-b+ sqrt(de))/2a << endl;
cout<<" Nghiem x2 = "<< (b+ sqrt(de))/2a << endl; }
else
cout<<" Phuong vo nghiem";
system ("pause");
return 0;
}
Mọi người giúp em lỗi này với ạ:
-error C2668: ‘sqrt’ : ambiguous call to overloaded function
-could be 'long double sqrt(long double)
-or ‘float sqrt(float)’
-or ‘double sqrt(double)’
Bài liên quan
Lỗi nó báo là phải dùng sqrt cho kiểu số thực, trong khi
de
là số nguyên, Nên để các biến kia là kiểu số thựcCòn lỗi
if(de = 0)
Lỗi trên là do thực chất có đến 3 hàm sqrt bây giờ phải chọn một. Nhưng kiểu int có thể ép lên cả 3 kiểu, vậy là ambiguous.
Nhiều lỗi quá!
vài thứ mình thấy đc:
Còn về lỗi sqrt thì trên máy mình k bị lỗi gì cả chạy vẫn rất mượt, trong trường hợp có thể thử lại như sau:
cout<<" Nghiem x1 = "<< (-b+ sqrt( (double)(de) ) )/2a << endl;
Nếu có sai sót mong thông cảm.
thanks mọi người, chỉ cần để biến de vào kiểu số thực “float de;” là chạy được
thanks thì ngừoi thật việc thật luôn nói miệng làm gì bạn ơi nút love kia