问题: 编写一个允许输入整数值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;
}
}
我无法找出错误。有人可以帮助我吗?
答案 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;
}
另一种方法有同样的问题