首页 > 解决方案 > 寻找 Array-C 程序的支点

问题描述

我必须找到给定数组的枢轴。请告诉我这个实现有什么问题。它总是返回-1。

int leftsum(int *nums, int index)
{
    int lsum=0;

        for(int i=0;i<index;i++)
            lsum += nums[i];
    return lsum;
}
int rightsum(int *nums, int index,int numsSize)
{
    int rsum=0;

    for(int i=index+1;i<=numsSize;i++)
        rsum += nums[i];
    return rsum;
}

int pivotIndex(int* nums, int numsSize) 
{ 
   for (int i=1;i<numsSize;i++)
   {
      if(leftsum(nums,i) == rightsum(nums,i,numsSize))  
         return i;
   }


   return -1;
}

标签: carrayspivot

解决方案


这是开始学习调试的好机会。

int rightsum(int *nums, int index,int numsSize) {
    int rsum=0;

    for(int i=index+1;i<=numsSize;i++)
        rsum += nums[i];
    return rsum; }

这里 for 循环中的条件应该是i<numsSize而不是i<=numsSize


推荐阅读