01/10/2018, 00:14
Bài tập Tam giác - Chỉ làm đúng 6/7 bộ test! Giúp em với mấy sư phụ!
Chuyện là em có làm một bài test trên đây: http://coding.ut.edu.vn:1010/tam-giac-p5.html (Web tập code của trường em ạ! )
Và đoạn code của em đây:
> #include "iostream"
> using namespace std;
> int kt_tg(int a, int b, int c){
> if(a!=0 && b!=0 && c!=0){
> return 1;
> }else return 0;
> }
> int main(){
> int x,y,z;
> cin >> x >> y >> z;
> if(kt_tg(x,y,z)){
> cout << "Yes" <<endl;
> if(x == y){
> if(y == z){
> cout <<"Equilateral";
> }else cout << "Isosceles";
> }else if(x == z){
> cout << "Isosceles";
> }else if(y == z){
> cout << "Isosceles";
> }else if(x*x == y*y + z*z || y*y == x*x + z*z || z*z == x*x + y*y){
> cout << "Right";
> }else cout << "Scalene";
> }else cout << "No";
> return 0;
> }
Em đã suy nghĩ rất nhiều (Không phải bố em hút nhiều thuốc đâu ạ!) sửa đi sửa lại mà nó chỉ báo đúng 6/7 bộ test! Thật khó hiểu, có thể do em chưa tìm ra được trường hợp còn sót, hoặc sai chỗ nào đó, nhưng mò máy ngày nay vẫn chưa tìm được! Mong các sư phụ chỉ bảo! Em cám ơn nhiều ạ!
Bài liên quan
đoạn này có mùi đấy bạn ạ. Bạn thử tạo tam giác có a+b = c xem được ko?
Có nghĩa là… Ngoài trường hợp một trong các cạnh của tam giác bằng 0 thì kết quả trả về là false còn trường hợp khác nữa hả bạn!
điều kiện của 1 tam giác là: tổng 2 cạnh luôn lớn hơn cạnh còn lại, hiệu luôn nhỏ hơn cạnh còn lại.
Em làm đc rồi các bác ạ, thiếu điều kiện tổng 2 cạnh > cạnh còn lại! Em cảm ơn các bác nhiều nhe!