写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,

package bzu;  
  
import java.util.Arrays;  
  
public class sanjiao {  
    int[] s1 = new int[3];  
      
    void triangle(int a,int b,int c){  
          
        s1[0] = a;  
        s1[1] = b;  
        s1[2] = c;  
        Arrays.sort(s1);  
    }  
  
}  
package bzu;    
import java.util.Scanner;    
import java.util.InputMismatchException;    
public class Test {    
    
    public static void main(String[] args) {    
           
        try{  
            sanjiao ss = new sanjiao();  
            System.out.println("请输入三个数:");    
            Scanner num =new Scanner(System.in);    
            int a=num.nextInt();    
            int b=num.nextInt();    
            int c=num.nextInt();    
              
            ss.triangle(a, b, c);  
            if(ss.s1[0]+ss.s1[1]>ss.s1[2])    
                System.out.println("这三个数能够构成三角形。");    
            else    
            {    
                    
                System.out.println("这三个数不能够构成三角形。");    
            }    
                    
            }catch (InputMismatchException e){    
                System.out.println("这三个数必须为整数");    
            
            }   
      }    
}  

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ,c不能构成三角形”。 方法实现如下: ``` public static void triangle(int a, int b, int c) { if (a + b <= c || a + c <= b || b + c <= a) { throw new IllegalArgumentException(a + "," + b + "," + c + "不能构成三角形"); } } ``` 该方法接收三个参数a、b、c,判断它们是否构成一个三角形。如果不能,则抛出IllegalArgumentException异常异常信息为“a,b,c不能构成三角形”。如果能构成三角形,则该方法不做任何操作。 ### 回答2: c不能构成一个三角形。” 在数学上,构成三角形的必要条件是任意两边之和大于第三边。因此,我们可以在代码中使用这个条件来判断是否构成一个三角形。 具体的实现方式如下: ```java public static void triangle(int a, int b, int c) throws IllegalArgumentException { if (a + b <= c || a + c <= b || b + c <= a) { throw new IllegalArgumentException(a + "," + b + "," + c + "不能构成一个三角形。"); } } ``` 在上面的代码中,我们使用了异常来处理无法构成三角形的情况。如果输入的三个数不满足两边之和大于第三边的条件,就会抛出 `IllegalArgumentException` 异常,并且附带异常信息。 我们可以在调用 `triangle` 方法的时候像下面这样使用: ```java try { triangle(3, 4, 5); System.out.println("能构成三角形。"); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } ``` 在上面的代码中,我们尝试构造一个能够构成三角形的三元组 `(3, 4, 5)`。由于这个三元组满足条件,所以没有任何异常被抛出,程序打印出能构成三角形信息。 我们还可以测试一个不能构成三角形的三元组,例如 `(1, 2, 3)`,代码如下: ```java try { triangle(1, 2, 3); System.out.println("能构成三角形。"); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } ``` 在这里,由于 `(1, 2, 3)` 这个三元组不满足条件,所以我们抛出了一个异常,并且打印出了异常信息:`1,2,3不能构成一个三角形。`。 ### 回答3: c无法构成一个三角形” 题目要求我们编写一个方法void triangle(int a, int b, int c),判断三个参数a、b、c是否能够构成一个三角形。那么我们首先需要了解什么是三角形,以及三角形成立的条件。 一个三角形是由三条边组成的,而且任意两边之和大于第三边,任意两边之差小于第三边。这个条件被称为三角形成立的条件。 我们可以根据上述定义,来编写验证三角形合法的代码: void triangle(int a, int b, int c) { if(a + b <= c || a + c <= b || b + c <= a) { //条件1:任意两边之和大于第三边 throw new IllegalArgumentException(a + ", " + b + ", " + c + "无法构成一个三角形"); } else if(Math.abs(a-b) >= c || Math.abs(a-c) >= b || Math.abs(b-c) >= a) { //条件2:任意两边之差小于第三边 throw new IllegalArgumentException(a + ", " + b + ", " + c + "无法构成一个三角形"); } else { System.out.println(a + ", " + b + ", " + c + "可以构成一个三角形"); } } 以上代码中,用到了异常机制,如果判断a、b、c不能构成三角形,则会抛出IllegalArgumentException异常,并显示相应的信息。这样,我们就可以提醒用户输入非法的参数,避免程序发生错误。 需要注意的是,如果三条边中有一个或多个小于等于0的数,同样不能构成三角形。这种情况应该额外处理。因此,完整的代码如下: void triangle(int a, int b, int c) { if(a <= 0 || b <= 0 || c <= 0) { //输入的数有一个或多个小于等于0的数 throw new IllegalArgumentException(a + ", " + b + ", " + c + "无法构成一个三角形"); } else if(a + b <= c || a + c <= b || b + c <= a) { //条件1:任意两边之和大于第三边 throw new IllegalArgumentException(a + ", " + b + ", " + c + "无法构成一个三角形"); } else if(Math.abs(a-b) >= c || Math.abs(a-c) >= b || Math.abs(b-c) >= a) { //条件2:任意两边之差小于第三边 throw new IllegalArgumentException(a + ", " + b + ", " + c + "无法构成一个三角形"); } else { System.out.println(a + ", " + b + ", " + c + "可以构成一个三角形"); } } 以上就是如何一个判断三角形是否合法的方法,希望能对大家有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值