根据三角形的3条边长,判断其是直角、钝角,还是锐角三角形。程序的功能要求如下。
(1)先输入三角形3条边的边长。
(2)判断能否构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形,则提示“不是三角形!”。
(3)如果能构成三角形,判断三角形是何种三角形。如果三角形的任意一条边的平方等于其他两条边平方的和,则为直角三角形;如果任意一条边的平方大于其他两条边平方的和,则为钝角三角形:否则,为锐角三角形。
输出结果如图。
代码如下:
/**
* Author:Xu Zheng Wei
* E-mail:2518298846@qq.com
* 程序功能:首先判断是否可以构成三角形,然后在用if语句判断是什么类型的三角形。
*/
package diliuzhang.three;
import java.util.*;
public class disanti {
/**
* 三角形的判断
* @param a、b、c边长
* @return 是否是三角形
*/
public boolean isTriangle(int a,int b,int c){
boolean flag=false;
if((a+b)>c &&(b+c)>a &&(a+c)>b){
flag=true;
}
return flag;
}
/**
* 三角形的形状判断
* @param a、b、c边长
* @return 何种三角形
*/
public String Shape(int a,int b,int c){
String shape="";
if((a==b)&&(b==c)&&(c==a)){
shape="等边三角形";
}else if((a==b)||(b==c)||(c==a)){
shape="等腰三角形";
}else {
int A=a*a;
int B=b*b;
int C=c*c;
if((A>B+C)||(B>A+C)||(C>A+B)){
shape="钝角三角形";
}else if((A==B+C)||(B==A+C)||(C==A+B)){
shape="直角三角形";
}else{
shape="锐角三角形";
}
}
return shape;
}
}
以下是调用代码:
/**
* Author:Xu Zheng Wei
* E-mail:2518298846@qq.com
* 程序功能:首先输入三边长,然后调用disanti的方法来进行判定是否构成三角形,
* 如是构成三角形判断是什么类型的三角形,最后调用方法输出。
*/
package diliuzhang.three;
import java.util.*;
public class disantiTest{
public static void main(String[] args) {
disanti t = new disanti();
boolean con = true;
while(con){
Scanner input = new Scanner(System.in);
System.out.println("请输入第一条边:");
int num1 = input.nextInt();
System.out.println("请输入第二条边:");
int num2 = input.nextInt();
System.out.println("请输入第三条边:");
int num3 = input.nextInt();
if (t.isTriangle(num1,num2,num3)){
System.out.println("这是一个"+t.Shape(num1,num2,num3));
}else {
System.out.println("这不能构成三角形。");
}
System.out.println("\n 继续吗?(y/n):");
String choice = input.next();
if (choice.equals("n")){
con=false;
System.out.println("谢谢使用!");
}
}
}
}
输出结果如下: