java输入三角形的三个边判断能否构成三角形。并判断构成三角形的类别(等边,等腰,普通)

如题所述

import java.util.Scanner;

public class Trigon {

private double a;
private double b;
private double c;

public Trigon(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
System.out.println("Please input first side:");//输入第1条边
double a = scan.nextDouble();
System.out.println("Please input second side:");//输入第2条边
double b = scan.nextDouble();
System.out.println("Please input third side:");////输入第3条边
double c = scan.nextDouble();
scan.close();

Trigon.isTrigon(a, b, c);//判断输入的能否构成三角形以及类型
}

public static void isTrigon(double a, double b, double c) {

if(a <= 0 || b <=0 || c <= 0){//如果有小于0的边长,显然不行
System.out.println("Can't");
return;
}

if (a + b > c && a + c > b && b + c > a) {//2边之和一定要大于第三边
if (a == b || a == c || b == c) {//等腰
if (a == b && b == c) {//等边
System.out.println("可以组成等边三角形");
} else {
System.out.println("可以组成等腰三角形");
}
return;
}

System.out.println("可以组成普通三角形");//普通
return;
}

System.out.println("不能够组成三角形!");//不能构成三角形
}

}

------------------
Please input first side:
3
Please input second side:
3
Please input third side:
2
可以组成等腰三角形
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-03
代码如下。。。我测试了下。。。。应该满足你的需求。。。
import java.util.Scanner;

public class Test {
public static void main(String args[]) {
int a, b, c;// 保存三角形的三条边

Scanner in = new Scanner(System.in);// 获取用户输入的三条边
System.out.println("请输入三角形的三条边:");
a = in.nextInt();
b = in.nextInt();
c = in.nextInt();
in.close();// 关闭输入

if (a <= 0 || b <= 0 || c <= 0)
System.out.println("输入错误,边长不能为负");
if ((a + b > c) && Math.abs(a - b) < c &&
(a + c > b)&& Math.abs(a - c) < b &&
(c + b > a) && Math.abs(c - b) < a) {
//三角形满足的要求,两边之和大于第三边,两边之差小于第三边

if (a == b || b == c || a == c) {

if (a == b && b == c)
System.out.println("这是一个等边三角形");
else
System.out.println("这是一个等腰三角形");
} else if (a * a + b * b == c * c || a * a + c * c == b * b
|| b * b + c * c == a * a)
System.out.println("这是一个直角三角形");
else
System.out.println("这是一个普通的三角形");
}else{
System.out.println("不能构成一个三角形");
}
}
}

希望对你有帮助。。。。仍有问题可以HI我。。。追问

能写个简单的吗

追答

这个已经简单了哦。。。。先输入三个边。。。然后根据他输入的三个边来判断它的类型。。。
有什么地方没看明白的话。。我可以给你讲讲。。。

因为你的要求就是要实现这些东东 哦。。。。。

第2个回答  2017-08-28
if((a+b)>c&&(a+c>b)&&(b+c)>a){cout<<"能构成三角形\n";if(a==b&&b==c)cout<<"是等边三角形\n";elseif(a==b||a==c||b==c)cout<<"是等腰三角形\n";elsecout<<"是一般三角形\n";}elsecout<<"不能构成三角形\n";IF和最近的ELSE配对,所以楼主你的代码是有两个IF-ELSE配对的,所以有两结果咯把等边等腰一般三角形的分别放到“能构成三角形”的IF语句中去而且应该先判定是否为等边,再判定是否为等腰
第3个回答  2011-03-03
public class Demo{
int a1, a2, a3;
InputStreamReader isr = new InputStremReader(System.in);
BufferedReader br = new BufferedReader(isr);
a1 = (int)(br.readLine());
InputStreamReader isr = new InputStremReader(System.in);
BufferedReader br = new BufferedReader(isr);
a2 = (int)(br.readLine());
InputStreamReader isr = new InputStremReader(System.in);
BufferedReader br = new BufferedReader(isr);
a3 = (int)(br.readLine())
if((a1 + a2 > a3) && (a1 + a3 > a2) &&(a2 + a3 > a1)){
if(a1 == a2 || a1 == a3 || a2 == a3){
System.out.println("等腰三角形");
}
if(a1 == a2 && a1 == a3 && a2 == a3){
System.out.println("等边三角形");
}else {
System.out.println("普通三角形");
}
System.out.println("不能构成三角形");

}

}
相似回答