java:如果告诉你a,b,c三条边,判断是否可以构成三角形,如果能计算出这个三角形的面积和周长?

作者&投稿:照潘 (若有异议请与网页底部的电邮联系)
输入三条边A,B,C,判断是否能构成三角形,如能构成,要用海伦公式计算 面积 用C语言啊~

海伦公式:[3]
假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:


而公式里的p为半周长(周长的一半):

#include#include#includeint main(){ double a,b,c,p,S; printf("input side a b c
"); scanf("%lf%lf%lf",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a)/*判断是否能构成三角形*/ { printf("Not a triangle!
"); } else { p=(a+b+c)/2; S = sqrt((p*(p-a)*(p-b)*(p-c))); printf("The area of a triangle is :%0.8f",S); } return 0;}

变量a,b,c没有赋值成功;
double型的转换字符是 %lf ,不是%f;
请修改scanf函数以及printf函数中所有的转换字符;
或将double型改为float型;

首先你要知道构成三角形的原理-----两边之和大于第三边,两边之差小于第三边。
知道这个原理之后就可以开始写程序了
int zc=0;//周长
int mj=0;//面积
bool bo=flase;
if(a+b<c&&a+c<b&&b+c<a)
{
bo=true;不满足条件
}
//判断a、b、c哪个大
if(a>b)
{
if(b>c)//a>b>c
{
if(a-b>c)
{
bo=true;
}
}
else
{
if(a>c)//a>c>b
{
if(a-c>b)
{
bo=true;
}
}
else//c>a>b
{
if(c-a>b)
{
bo=true;
}
}
}
}else
{
if(b>c)
{
if(a>c)//b>a>c
{
if(b-a>c)
{
bo=true;
}
}else//b>c>a
{
if(b-c>a)
{
bo=true;
}
}
}
}
//判断如果是bo为true的话就说明不满足三角形的条件
if(!bo)//满足三角形条件计算周长和面积
{
zc=a+b+c;//周长等于三边之和
mj=????//面积忘了,好像是底乘以高除以2 有办法直接知道边就可以算出面积,你去查查三角形知道边长面积怎么计算

}

【程序代码】
public class Js
{
private double a;
private double b;
private double c;
Js(double a,double b,double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public double getA()
{
return a;
}
public double getB()
{
return b;
}
public double getC()
{
return c;
}
public double area()
{
double s1=(a+b+c)/2;
double s2 = s1*(s1-a)*(s1-b)*(s1-c);
double result = Math.sqrt(s2);
return result;
}
public double jsLength()
{
return a+b+c;
}
}

class Jxcomputer
{
public static void main(String[] args)
{
Js js = new Js(3,6,8);
System.out.println("三角形三边长度分别为:"+"a:"+js.getA()+"\tb:"+js.getB()+"\tc:"+js.getC());
System.out.println("三角形面积为:"+js.area());
System.out.println("三角形周长为:"+js.jsLength());
}
}
【编译与运行】
编译:javac Js.java
运行:java Jxcomputer

查找的代码,希望能帮助你!^_^

。。。。。。。。。。。。。。

三个整数变量a,b,c,求最大值和最小值的java编程
答:java定义三个整数变量a,b,c,求最大值和最小值,方法如下:public class TestA {public static void main(String[] args){//定义abc三个参数值int a=3;int b=32;int c=320;//定义最大值int max=0;//定义最小值int min=0;//假如a>b 先设置a为最大值,b为最小值if(a>b){max=a;...

用java编写比较a,b,c的大小
答:c>(a>b?a:b)?c:(a>b?a:b)public class Demo1 { public static void main(String [] arg){ System.out.println(Max(3,4,3));} public static int Max(int a,int b,int c){ return c>(a>b?a:b)?c:(a>b?a:b);} } ...

编写一个的JAVA程序,定义a,b,d…h8个变量并赋值,
答:System.out.println("short b="+b);System.out.println("int c ="+c);System.out.println("long d ="+d);System.out.println("float e="+e);System.out.println("double f ="+f);System.out.println("char g ="+g);System.out.println("boolean h ="+h);int x=a%b;long y ...

帮忙java编程:abc均为整数,且abc为个位数,abc=a^3+b^3+c^3.求a ,b...
答:c++) { if (a*100+b*10+c == (a*a*a + b*b*b + c*c*c)) { System.out.println(a+"^3"+" + "+b+"^3"+" + "+c+"^3 = "+a+b+c ); } } } } }} 输出 1^3 + 5^3 + 3^3 = 153 3^3 + 7^3 + 1^3 = 371 ...

求解答 java中, A跟B , 2个东西 要随机选出1个, 这个code怎么写
答:int n=(int)(Math.random()+0.5);如果随机数是在[0,0.5)中,则n=0 如果随机数是在[0.5,1)中,则n=1 然后可以根据n==0判断选择A还是选择B

JAVA判断a到b之间有多少个素数,并以文件形式输出所有素数。 求大神迅猛...
答:public static void main(String[] args) { System.out.println("Please enter two integers , separated or ended by RETURN:"); //请输入两个整数 以回车间隔或结束 Scanner in1 = new Scanner(System.in);Scanner in2 = new Scanner(System.in);int a = in1.nextInt();int b = in2....

java中,有两个类A和B,B类中包含有参数构造方法b1和无参数方法b2,那在A ...
答:那在A类中new个B类对象并调用方法b2。那么new的时候是不是要加参数?调用方法b2的时候构造方法是不是也调用了?*/ class A{ public A(){ System.out.println("System.out.println--调用无参的B的构造方法");B b=new B();//如果需要调用B的无参构造方法,则不加参数 System.out.println("...

JAVA 要求读入2个绝对值不超过1000的整数A和B,然后输出两个数的最大...
答:import java.util.Scanner;public class TestInput {//扫描器,用于获取控制台的输入static Scanner sc = new Scanner(System.in);public static void main(String[] args) {int A=inputNum();int B=inputNum();//方法一: 利用Math.max求最大值System.out.println("最大值"+Math.max(A, B...

Java定义三个整形变量a,b,c;其值由键盘输入,比较它们的值并打印输出最...
答:public static void main(String[] args) { Scanner scan = new Scanner(System.in); List<Integer> nums = new ArrayList<Integer>(); nums.add(scan.nextInt()); nums.add(scan.nextInt()); nums.add(scan.nextInt()); System.out.println(nums); Collections.sort(...

java运算中&是什么意思,比如a=1;b=2;a&b=多少
答:&是位操作符,“按位与”;1转成二进制 01;2转成二进制 10;a&b=00转成十进制为0。位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。优先级从高到低,依次为~、&、^、|。按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x ...