previous | start | next

Example

This is the same example as earlier, but using a for-loop instead of a while-loop and checking that the index variable, k, is within bounds.

Where is the error? What addition to the loop condition would fix this error?

  int[] wt = {1, 2, 3, 5, 9, 15, 15, 16, 20};
  int targetWeight;
  Scanner in = new Scanner(System.in);

  targetWeight = in.nextInt();                               

  int sum = 0; // Total Weight of packed items               

  for(int k = 0; k < wt.length && sum < targetWeight; k++)
  {
    sum += wt[k];
  }
  System.out.printf("target weight = %d, " +
                    "packed weight = %d, " +
                    "number items packed = %d\n",
                    targetWeight, sum, k);


previous | start | next