使用函数的数组中的平方和

时间:2015-10-20 14:22:30

标签: java arrays function

问题:  编写一个允许输入整数值n的程序,然后输入两组n个整数值到数组A和B中。程序应该使用一个函数来计算A和B的相应值的平方和。这些值然后应该显示。

我的代码:

import java.util.Scanner;

public class Question9_SumOfSquareInArrays {


    public static void main(String[] args) {
         int sumA = 0;
         int sumB = 0;
         int n;
         int i=0;


         Scanner src=new Scanner(System.in);
         System.out.print("Please enter value :");
         n=src.nextInt();

         int [] A=new int[n];
         int [] B=new int[n];

         System.out.println("Enter value for array A :");
         for(i=0;i<n;i++)
         {
            A[i]=src.nextInt();
         }
         System.out.println("Enter value for array B :");

         for(i=0;i<n;i++)
         {
             B[i]=src.nextInt();
         }
         src.close();

        System.out.println("Total sum for array A is " + SumOfA(sumA));
         System.out.println("Total sum for array B is " + sumOfB(sumB));




    }

    public static int SumOfA(int sumA)
    {
        int square=1;
        int sum=0;   
        int n=6;
       int [] A= new int[n];
        for(int i=0;i<n;i++)
        {
            square=A[i]*A[i];
            sum+=square;
        }
        return sum;

    }

    public static int sumOfB(int sumB)
    {
        int square=1;
        int n=6;
        int sum=0;
        int [] B=new int [n];
        for(int i=0;i<n;i++)
        {
            square=B[i]*B[i];
            sum+=square;

        }
        return sum;

}
}

我无法找出错误。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

public static int SumOfA(int sumA)
{
    int square=1;
    int sum=0;   
    int n=6;
   int [] A= new int[n]; // you are calculating the sum of this array
    for(int i=0;i<n;i++)
    {
        square=A[i]*A[i];
        sum+=square;
    }
    return sum;

}

是有问题的,因为它计算0 s。

数组的总和

相反,您需要将数组传递给方法,即

你需要main中的

System.out.println("Total sum for array A is " + SumOfA(A));

并按如下方式修改您的SumOfA。请注意,最好使用n = A.length,因为A的长度不一定总是为6。

public static int SumOfA(int[] A)
{
    int square=1;
    int sum=0;   
    int n=A.length; // use length to handle array A of any length

    for(int i=0;i<n;i++)
    {
        square=A[i]*A[i];
        sum+=square;
    }
    return sum;

}

另一种方法有同样的问题