黑马程序员技术交流社区

标题: 各位大侠求救啊,这个题怎么做 [打印本页]

作者: 肥洋洋    时间: 2014-6-2 16:40
标题: 各位大侠求救啊,这个题怎么做
本帖最后由 肥洋洋 于 2014-6-2 17:17 编辑

补足compare函数(找出Circle cir[]数组中最大的半径)内的代码,不许添加其他函数。
  1. class Circle
  2. {
  3.         private static double pi=3.14;
  4.         private double radius;
  5.         public Circle(double r)
  6.         {
  7.                 this.radius=r;
  8.         }
  9.         public static double compare(Circle[] cir)
  10.         {                        
  11.                 //请在此处补足代码
  12.         }
  13. }
  14. class TC
  15. {
  16.         public static void main(String[] args)
  17.         {
  18.                 Circle cir[]=new Circle[3];
  19.                 cir[0]=new Circle(1.0);
  20.                 cir[1]=new Circle(2.0);
  21.                 cir[2]=new Circle(4.0);
  22.                 System.out.println("最大的半径值是:"+Circle.compare(cir));
  23.         }
  24. }
复制代码

作者: 李小然    时间: 2014-6-2 16:54
class Circle
{
        private static double pi=3.14;
        private double radius;
        public Circle(double r)
        {
                this.radius=r;
        }
        public static double compare(Circle[] cir)
        {            
                                double maxCir = cir[0].radius;
                               
                                for(int index = 0; index < cir.length -1; index++)
                                {
                                        maxCir = maxCir > cir[index+1].radius ? maxCir : cir[index+1].radius ;
                                }
                               
                                return maxCir;
        }
}
class TC
{
        public static void main(String[] args)
        {
                Circle cir[]=new Circle[3];
                cir[0]=new Circle(1.0);
                cir[1]=new Circle(2.0);
                cir[2]=new Circle(4.0);
                System.out.println("最大的半径值是:"+Circle.compare(cir));
        }
}


哪里不明白可以回帖问我。

作者: 肥洋洋    时间: 2014-6-2 17:16
李小然 发表于 2014-6-2 16:54
class Circle
{
        private static double pi=3.14;

谢谢,看懂了,我直接max跟cir[index]比,原来比的是对象,难怪不行,学习到了~~:handshake
作者: pk49800    时间: 2014-6-2 17:32

  1. public class MaxRadius {
  2.        
  3.         public static void main(String[] args){
  4.                 Circle[] cir = new Circle[3];
  5.                 cir[0] = new Circle(1.0);
  6.                 cir[1] = new Circle(2.0);
  7.                 cir[2] = new Circle(4.0);
  8.                 System.out.println("最大的半径值是:"+ Circle.compare(cir));
  9.                
  10.         }

  11. }
  12. class Circle{
  13.        
  14.         private static double pi = 3.14;
  15.         private double radius;
  16.        
  17.         public Circle(double r){
  18.                 this.radius = r;
  19.         }
  20.        
  21.         public static double compare(Circle[] cir){
  22.                
  23.                 double maxRadius = cir[0].radius;
  24.                 for(int i = 0;i<cir.length-1;i++){
  25.                         maxRadius = maxRadius*pi>cir[i+1].radius*pi?maxRadius:cir[i+1].radius;


  26.                 }
  27.                 return maxRadius;
  28.         }
  29.        
  30.        
  31. }
复制代码

作者: kongyan4696    时间: 2014-6-2 18:24
  1. import java.util.*;

  2. class Circle
  3. {
  4.         private static double pi=3.14;
  5.         private double radius;
  6.         public Circle(double r)
  7.         {
  8.                 this.radius=r;
  9.         }
  10.         public static double compare(Circle[] cir)
  11.         {            
  12.                                 TreeSet<Double> ts = new TreeSet<Double>();
  13.                                 for(Circle c:cir)
  14.                                 {
  15.                                                                         ts.add(c.radius);
  16.                                 }
  17.                                 
  18.                                 return ts.last();
  19.         }
  20. }
  21. class Priva
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 Circle cir[]=new Circle[3];
  26.                 cir[0]=new Circle(1.0);
  27.                 cir[1]=new Circle(2.0);
  28.                 cir[2]=new Circle(4.0);
  29.                 System.out.println("最大的半径值是:"+Circle.compare(cir));
  30.         }
  31. }
复制代码


E:\Coder\cc>java Priva
最大的半径值是:4.0
作者: 淡淡柠檬茶    时间: 2014-6-2 18:40
class Circle
{
        private static double pi=3.14;
        private double radius;
        public Circle(double r)
        {
                this.radius=r;
        }
        public static double compare(Circle[] cir)
        {                        
                //请在此处补足代码
                        int max = 0;
                        for (int x = 1;x<cir.length ;x++ )
                        {
                                if (cir[x].radius > cir[max].radius)
                                {
                                        max = x;
                                }
                        }
                        return cir[max].radius;

        }
}
class TC
{
        public static void main(String[] args)
        {
                Circle cir[]=new Circle[3];
                cir[0]=new Circle(1.0);
                cir[1]=new Circle(2.0);
                cir[2]=new Circle(4.0);
                System.out.println("最大的半径值是:"+Circle.compare(cir));
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2