Em bị vướng mắc chỗ kiểm tra xem đó có phải là tam giác vuông cân hay không, mà bao lần nhập nó chỉ hiện ra là tam giác cân dù nó có cả vuông cân . Mong mọi người giúp đỡ
Nhập dữ liệu và kiểm tra 3 số đó là tam giác gì: đều, vuông cân, cân, vuông hay thường
Vuông cân thì phải là (a==b && a*a + b*b == c*c) || (...)
chứ nhỉ? Hay mình nhầm
Mà phải check nó có là tam giác không đã trước chứ
Các giá trị a, b, c
có phải kiểu float
(hay double
) không?
So sánh số thực mà dùng phép toán ==
thì chả mấy khi chúng bằng nhau sau khi tính toán.
Bạn nên viết 1 phương thức để so sánh 2 số thực có bằng nhau hay không với 1 sai số cho phép.
Nguyên mẫu:
public static boolean isEquals(double a, double b, double epsilon){
// So sánh hai số a và b có bằng nhau trong phạm vi epsilon.
}
vuông cân không thể nào viết code để check được
lý do là người ta không thể nào nhập số hữu tỉ vô hạn không tuần hoàn (cạnh huyền là một số gì đó nhân với căn 2, ai nhập được số như vậy)
trường hợp bạn nói mình cũng có code trc đó rùi nhưng vẫn vậy và cái trên là mình tham khảo nhưng cơ bản vẫn giống nhau. còn nó có phải tam giác không thì mình check sau cùng vs trg hợp tam giác thường. nếu thỏa mãn là vuông cân thì chắc chắn là tam giác nên k cần check
mình dùng 1 biến trung gian là d và d = c * c nhưng khi xét điều kiện thì mình vẫn dùng c để xét thỏa mãn
các giá trị a , b ,c đều là double và mình có dùng 1 biến trung gian là d khi nhập , d = c*c nhưng khi xét điều kiện tam giác vẫn là dùng c . chằng hiểu sao khi xét đến trg hợp tam giác vuông cân thì nó luôn bỏ qua và cho là tam giác cân luôn
cái cơ bản nhất là kiểu số thực thì không thể so sánh bằng
phải có một quy ước là lệch bao nhiêu thì tính là bằng, như ông trên kia đã gợi ý
- cậu thử tách thành hai hàm check TG vuông và TG cân và khi xét đến tam giác vuông cân thì cho cả hai hàm trả về true xem sao?
- giữa phép so sánh số thực, cậu điều chỉnh số chữ số sau dấu phẩy để đưa về giá trị cụ thể
Cho bạn xem trang này:
https://0.30000000000000004.com/#java
Vấn đề vẫn nằm ở phép so sánh ==
mà thôi.