我试图返回数组的总和,但是我没有使用递归对数组求和,而是数组总和返回为 0。我认为我可能忽略了一些东西。多一双眼睛会有所帮助。
public class JavaSandbox {
/**
* @param args the command line arguments
*/
public static int sumDanceScore(int danceScore[], int first, int last)
{
if (first > last)
{
return 0;
}
else
{
int total = sumDanceScore(danceScore,first+1,last) + danceScore[first];
return total;
}
}
public static void main(String[] args)
{
Scanner kbd = new Scanner(System.in);
System.out.println("Enter number of contestants : ");
int numContest = kbd.nextInt();
int danceScore[] = new int[numContest + 1];
int first = 0;
int last = danceScore.length - 1;
System.out.println("Enter dance scores: ");
int numContestIndex;
for (numContestIndex = 1; numContestIndex <= numContest; numContestIndex++) {
danceScore[numContestIndex] = kbd.nextInt();
}
int danceScoreTotal = sumDanceScore(danceScore, first, last);
System.out.println("SUM DANCE SORE METHOD: "+danceScoreTotal);
for(int danceScoreIndex = 1; danceScoreIndex <= danceScore.length-1; danceScoreIndex++)
{
int danceScoreShare = danceScore[danceScoreIndex] / danceScoreTotal;
System.out.println("DANCE SCORE SHARE "+danceScoreShare);
}
}
}
最佳答案
在您的代码中,您在填充数组之前调用函数 sumDanceScore
。因此,您将一个充满零(作为默认值)的数组传递给该函数。
关于java - 尝试返回数组之和,方法调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306116/