JAVA输入三角形的三条边,判断是否是一个三角形,三角形的形状

2024-11-17 19:49:45
推荐回答(3个)
回答1:

这个是以前写的,有界面的。

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class sanjiao {
enum Type{等腰三角形 ,等边三角形,直角三角形,等腰直角三角形,普通三角形}
public static void main(String args[]){
new MyFrame();
}

}

class MyFrame extends JFrame implements ActionListener{
JButton jbOK=new JButton("OK");
JTextField jf1=new JTextField(20);
JTextField jf2=new JTextField(20);
JTextField jf3=new JTextField(20);

public MyFrame() {

this.setTitle("三角形处理程序");
this.setBounds(100, 100, 240, 180);
this.setLayout(new FlowLayout());

this.add(jf1);
this.add(jf2);
this.add(jf3);
this.add(jbOK);
this.setVisible(true);
jbOK.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {
float a=0,b=0,c=0;

if(jf1.getText().equals("")||jf2.getText().equals("")||jf3.getText().equals("")){
JOptionPane.showMessageDialog(null, "数据不能为空", "错误", JOptionPane.ERROR_MESSAGE);
}
else{
a=Float.parseFloat(jf1.getText());
b=Float.parseFloat(jf2.getText());
c=Float.parseFloat(jf3.getText());
System.out.println(a+" "+b+" "+c);
sort(a,b,c);
}
}
public void sort(float a,float b,float c){
sanjiao.Type type=null;
float temp[]=new float[3];
temp[0]=a;
temp[1]=b;
temp[2]=c;
for(int i=0;i<2;i++){
float temp1 = 0;
for(int j=0;j<2;j++){

if(temp[j] temp1=temp[j];
temp[j]=temp[j+1];
temp[j+1]=temp1;
}
}

}
if(temp[0] {

if(temp[0]==temp[1]||temp[1]==temp[2]){
if(temp[0]==temp[2])
type=sanjiao.Type.等边三角形;
else if(temp[0]==Math.sqrt(Math.pow(temp[1], 2)+Math.pow(temp[2], 2)))
type=sanjiao.Type.等腰直角三角形;
else
type=sanjiao.Type.等腰三角形;

}
else if(temp[0]==Math.sqrt(Math.pow(temp[1], 2)+Math.pow(temp[2], 2)))
type=sanjiao.Type.直角三角形;
else
type=sanjiao.Type.普通三角形;
JOptionPane.showMessageDialog(null, "可以组成"+type,"alert" , JOptionPane.INFORMATION_MESSAGE);

System.out.println(type);
}
else
JOptionPane.showMessageDialog(null, "不可以组成三角形","alert", JOptionPane.INFORMATION_MESSAGE);
}

}

回答2:

class San{
public static void main(String[] args){
int a=5,b=2,c=3;
if((a>0 && b>0) && c>0){
//先排序
int max,min,mid;
max=a;
min=b;
mid=c;
get(min,mid,max);

//判断能不能构成三角形
if(min+mid>max){

System.out.println(a+" " + b +" " +c +"可以构成三角形");
int x = min*min+mid*mid;
//判断是什么形状的三角形
if(x>max*max){
System.out.println("锐角三角形");
if(max==min && max==mid)
System.out.println("等边三角形");
}else if(x < max*max){
System.out.println("钝角三角形");
}else{
System.out.println("直角三角形");
if(min==mid)
System.out.println("等腰直角三角形");
}
if((max==mid||mid==min) ||min==max){
System.out.println("等腰三角形");
}
}else{
System.out.println("不能构成三角形");
}
}
}
public static void get(int a,int b,int c){
if(a>b){
a=a^b;
b=a^b;
a=a^b;
}
if(b>c){
b=b^c;
c=b^c;
b=b^c;
}
if(a>b){
a=a^b;
b=a^b;
a=a^b;
}

}
}

回答3:

Function third(a,b,c){if(a>0 && b>0 && c>0){
if(a==b && b==c)return("等边三角形");else
if(a==b || b==c || a==c)return("等腰三角形");else
if(a+b>c && a+c>b && b+c>a)return("不等边三角形");
}