30/09/2018, 23:14

Chương trình kiểm tra 3 số a,b,c có tạo thành một tam giác không và loại của tam giác đó?

Với a, b, c là các số thực được gán trong chương trình, kể cả số âm và dương. Hãy báo ra màn hình đây có phải là độ dài của 1 tam giác không, nếu có thì đó là của loại tam giác nào

Cho em hỏi thử bài này có đúng không @@~ em làm nhưng kh biết có ai giúp em chấm điểm @@ bro nào biết thì giúp em với, có sai thì sửa giúp em luôn @@

public class myDemo2 {
	public static void main(String[] args) {
		double a = 13.201, b = 16.124, c = 15.151;

		if ((a + b > c) || (a + c > b) || (b + c > a)) {
			System.out.println("Đây là tam giác !");
		}
		if ((a == b) || (b == c) || (c == a)) {
			System.out.println("Đây là tam giác cân !");
		} else if ((a == b) && (b == c) && (c == a)) {
			System.out.println("Đây là tam giác đều !");
		} else if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == b * b + a * a)) {
			System.out.println("Đây là tam giác vuông !");
		} else {
			System.out.println("Đây không phải tam giác");
		}
	}
}
Văn Dương viết 01:30 ngày 01/10/2018

Chương trình này sẽ không bao giờ phát hiện được tam giác đều.

Văn Dương viết 01:30 ngày 01/10/2018

Lỗi này không phải lỗi ngôn ngữ mà là lỗi thuật toán
Thuật toán này chắc ngôn ngữ nào cũng dính

Đỗ Trung Quân viết 01:27 ngày 01/10/2018

Nó có chạy được vào else if trong trường hợp a =b =c đâu bạn. Lỗi do người lập trình

Quốc Duy Đặng viết 01:25 ngày 01/10/2018

mình nghĩ bạn nên đặt chỗ điều kiện tam giác đều lên trên tam giác cân á

Đỗ Trung Quân viết 01:26 ngày 01/10/2018

Bài này em làm sai rồi.
em phải gộp vào 2 trường hợp chính là có đúng tam giác hoặc không.
Sau đó mới tìm xem đó là tam giác gì

//trường hợp tam giác đều sẽ không được kiểm tra nếu có 2 cạnh bằng nhau
else if ((a == b) && (b == c) && (c == a)) {
//nếu có cũng thừa. Chỉ cần kiểm tra if( a==b && b==c) là đủ
–> Kiểm tra tam giác đều trước -> cân -> vuông -> thường

Cách làm:

if(Đúng là 3 cạnh tam giác) 
           -> if(3 cạnh bằng nhau) ? tam giác đều; 
              else if(2 cạnh bằng nhau) ? tam giác cân;
              else if(có 1 góc vuông) ? tam giác vuông;
              else if(3 cạnh không bằng nhau) ? tam giác thường; 
else(Không phải 3 cạnh tam giác) : Báo sai
I am Z viết 01:22 ngày 01/10/2018

Nếu không có ai chấm cho em, em hãy dựa vào đề bài tạo ra các bộ test cases để tự chấm cho chính mình. Cụ thể trong trường hợp này thì em có thể tìm các bộ test cases đạt các điều kiện sau:

  • Bộ chiều dài không phải tam giác.
  • Bộ chiều dài đáp ứng điều kiện là 3 cạnh của tam giác nhưng có số âm.
  • Bộ chiều dài tam giác: thường, cân, vuông cân, đều.

Bài của em thì lỗi logic rất nhiều, em cứ tạo test cases rồi thử. Em sẽ biết mình sai ở đâu rồi từ đó tự rút ra kinh nghiệm bản thân.

Trần Minh Nhựt viết 01:25 ngày 01/10/2018

^^ cảm ơn tất cả các anh đã nhiệt tình giúp em ^^, cảm ơn ạ em sẽ làm lại ^^

Bài liên quan
0