请问一个static返回值的问题!!!!!
static  double sum(double [] a )          //求数组的总和
{
     double sum=0;
    
     for(int i=0;i<a.length;i++)
     {
     sum+=a[i];
     }
     return sum;
}public static void main(String[] args) {
Calculate c=new Calculate();
double [] a={1.0,2.0,3.0};
                for(int i=0;i<a.length;i++)
                {
           System.out.print("sum =  "+c.sum(a[i]));
                }
}
为什么出错啊!!!!!!!!!!!! c.sum(a[i]) 它说double值找不到!! 求助!!

解决方案 »

  1.   

    如果你的sum()方法和你的main()方法在一个类里,你可以这样写
    System.out.println("sum =  "+sum(a)); 
    如果不在的话可以这样
    System.out.println("sum =  "+类名.sum(a)); 
      

  2.   

    System.out.print("sum =  "+Calculate.sum(a[i]));
      

  3.   

    还是不行~~
    System.out.print("sum =  "+c.sum(a[i])); 
    我这里的 sum(a[i]) 还是会报错~~~~~~~~~~~~  ,请高手指导!!!public class Calculate {
    static  double sum(double [] a )
        {
         double sum=0;
        
         for(int i=0;i<a.length;i++)
         {
         sum+=a[i];
         }
         return sum;
        }
    }public class Test {
    public static void main(String[] args) {
    Calculate c=new Calculate();
    double [] a={1.0,2.0,3.0};
    for(int i=0;i<a.length;i++)
    {
    System.out.println("sum = "+Calculate.sum(a[i]));
    }
    }
    }
      

  4.   

    我觉的你的问题是在:
    static  double sum(double [] a )
    从方法申明中可知道你传给这个方法的参数是个double型的数组,但是在你的调用却是这样的 :
    ***.sum(a[i]),你传了double型的参数,但并不是数组。
      

  5.   

    修改后:
    public class Calculate {
     double sum(double [] a )
        {
         double sum=0;
        
         for(int i=0;i <a.length;i++)
         {
         sum+=a[i];
         }
         return sum;
        }

    public static void main(String[] args) {
    Calculate c=new Calculate();
    double [] a={1.0,2.0,3.0}; System.out.println("sum = "+c.sum(a));

    }
    }返回的是a,是个指针。而楼主的a[i]是个元素。一般java不推荐使用指针
      

  6.   

    Calculate c=new Calculate(); 
    double [] a={1.0,2.0,3.0}; 
                  //求和的过程在你的方法里面已经实现所以循环没有必要.
                 //   for(int i=0;i <a.length;i++) 
                 //   { 
                      //a[i] 是一个数  而你的方法需要一个数组
              // System.out.print("sum =  "+c.sum(a[i]));
                  //直接传a 就可以了. 
                    System.out.print("sum =  "+c.sum(a));              //   } 

      

  7.   

    System.out.print("sum =  "+c.sum(a[i])); a[i]是一个double引用
    你的sum函数的参数是一个double[]引用2个东西不一样,怎么可能穿的进去
      

  8.   

    明白楼主的目的。
    你这样就行了
    System.out.print("sum =  " + c.sum(a));把数组作为参数传递,而不是把一个double值作为参数传递,因为你的方法是以数组作为参数!!!
      

  9.   

    for(int i=0;i <a.length;i++) 

    System.out.println("sum = "+Calculate.sum(a[i])); 

    改为System.out.println("sum = "+Calculate.sum(a));
    参数类型要一致
      

  10.   

    c.sum(a[i])需要的是一个double[]参数(一个数组)
    而你传递的参数是一个double(浮点型)。
    代码修改如下 static double sum(double[] a) // 求数组的总和
    {
    double sum = 0; for (int i = 0; i < a.length; i++) {
    sum += a[i];
    }
    return sum;
    } public static void main(String[] args) {
    double[] a = { 1.0, 2.0, 3.0 };
    System.out.print("sum =  " + Calculate.sum(a));
    }
      

  11.   

    static double sum(double[] a) // 求数组的总和
        {
            double sum = 0;        for (int i = 0; i < a.length; i++) {
                sum += a[i];
            }
            return sum;
        }    public static void main(String[] args) {
            double[] a = { 1.0, 2.0, 3.0 };
            System.out.print("sum =  " + Calculate.sum(a));
        }
    这样就可以了,还有你不是要计算和吗?你为什么
       for(int i=0;i <a.length;i++)
                    {
               System.out.print("sum =  "+c.sum(a[i]));
                    } 
    这么些啊,sum不是都给你完成了吗?