用对象的概念做题,要求判断出是什么类型的三角形。题目细节要求如下图,求大神救,本人小白一枚。
需求已经很明确了,要写好代码只有多练,多想,写完了有问题的话大家可以帮你看看。
package test;
import java.util.Scanner;
public class TriangleTest {
public static void main(String[] args) {
TriangleTest test = new TriangleTest();
Scanner scan = new Scanner(System.in);
String next = "";
while(!"n".equals(next)){
System.out.print("请输入第一条边:");
int a = scan.nextInt();
System.out.print("请输入第二条边:");
int b = scan.nextInt();
System.out.print("请输入第三条边:");
int c = scan.nextInt();
if(!test.isTriangle(a, b, c))
System.out.println("这不能构成三角形。");
else{
String shape = test.shape(a, b, c);
System.out.println("这是一个"+shape);
}
System.out.print("要继续吗?(y/n):");
next = scan.next();
}
System.out.println("谢谢使用");
}
public boolean isTriangle(int a,int b,int c){
boolean flag = false;
if((a+b) > c && (a+c) > b && (b+c) > a)
flag = true;
return flag;
}
public String shape(int a,int b,int c){
String shape="";
//最大边长
int max = (a>b)?a:b;
max = (max>c)?max:c;
//三条边的平方和
double sum = Math.pow(a, 2)+Math.pow(b, 2)+Math.pow(c, 2);
//最大边长的平方*2
double m = Math.pow(max, 2)*2;
if(m > sum)
shape="钝角三角形";
else if(m == sum)
shape="直角三角形";
else
shape="锐角三角形";
return shape;
}
}
判断一下最大边 两个小边大于最大边就可以