名为雨捷的超神
新手的编程(求改错和指点)

刚开始接触JAVA,作为大2的我在大一接触过C++,对编程有一点基础,这学期开始学java

第一周老师让我们编已知三角形的三条边求面积和周长的题目

下面是我写的代码,不知道对不对,求大神指点和改错

import java.util.Scanner;

import java.Math.*;

public class Tria

{

double a,b,c,p;

double setA(int x)

{

a=x;

}

double setB(int y)

{

b=y;

}

double setC(int z)

{

c=z;

}

p=(a+b+c)/2;

double getArea()

{

return Math.sqrt(p*(p-a)*(p-b)*(p-c));

}

double getC()

{

return a+b+c;

}

}

class Task

{

public static void main(String args[])

{

System.out.println("请输入3个数确定三角形的三条边");

System.out.println("请确认任意两边之和大于第三边");

Tria triangle;

triangle=new Tria();

double x,y,z;

x=reader.nextDouble();

y=reader.nextDouble();

z=reader.nextDouble();

if(x+y>z)

{

if(x+z>y)

{

if(z+y>x)

{

triangle.setA(x);

triangle.setB(y);

triangle.setC(z);

double area=triangle.getArea();

double c=triangle.getC();

System.out.println("三角形的面积:"+area);

System.out.println("三角形的周长:"+c);

}

else

System.out.println("两边之和小于第三边");

}

else

System.out.println("两边之和小于第三边");

}

else

System.out.println("两边之和小于第三边");

}

}

ApfelZaft
本帖最后由
展开Biu

本帖最后由 ApfelZaft 于 2012-9-10 00:17 编辑

还有一个问题,你在Tria中声明的几个方法既然不是void型,那么应该要有返回值的…

最后是最严重的问题…主类在这里应该是public 反倒是你那个声明方法的类完全没有必要用public在这里。

之后应该没什么问题了,我试着编了一个正常编译运行通过了。

对了楼主。。import java.Math.*;这句也可以去除…因为Math实在lang包中的…你这样引用就不太合理了。

其实编程很多的诀窍都在java的API中,以后编写复杂程序是离不开API的~各种包和接口,方法的调用可以经常查看它~

[查看全文]
ApfelZaft
楼主你的程序有一个比较明显的错误
展开Biu

楼主你的程序有一个比较明显的错误,

x=reader.nextDouble();

y=reader.nextDouble();

z=reader.nextDouble();

此时xyz三个变量都是double型,你在之前定义确认三边长的function时要求的输入是整型,这样编译肯定会有问题。

[查看全文]
名为雨捷的超神
中间漏了一句
展开Biu

中间漏了一句Scanner reader=new Scanner(System.in)忘记打了

[查看全文]