java - 尝试返回数组之和,方法调用错误

标签 java for-loop recursion methods

我试图返回数组的总和,但是我没有使用递归对数组求和,而是数组总和返回为 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/

相关文章:

bash - ffmpeg for 循环进入 bash 脚本

C# for 循环错误 > is invalid

javascript - JavaScript 中的 For 循环 - 彩票网站

javascript - 为什么递归会反向发生

java - ArrayList 到 Array 的 ArrayList

java - 为什么@Spy Abc abc 无法获取已经存在的实例?

java - 如何使用共享首选项在 ListView 中保存项目

java - 屏幕旋转后按钮属性更改不会保存

algorithm - 手动计算递归斐波那契算法的时间复杂度

node.js - NodeJS 异步和递归