如何在数组中添加某组数字?

时间:2014-11-05 23:51:52

标签: c++ arrays loops for-loop

嘿所以我的功能需要根据用户输入在数组中添加一定数量的偶数。到目前为止,这是我的方法:

函数调用:

cout << "The sum of the first " << userSum << " even numbers is: " << 
SumEvens(list,   SIZE,   userSum);

功能定义:

int SumEvens(int arr[], const int size, int evensAdd)
{
    int sum = 0;
    for (int i = 0; i <= size; i++){       
        for (int j = 0; j <= evensAdd; j++){
            if (arr[i] % 2 == 0)
                sum += arr[i];
        } 
   }
return sum;
}

我不确定我是否需要双循环,但似乎有必要让我可以浏览每个数字,然后只选择我需要的数字。

现在每当我运行这个程序并告诉它将数字加起来就会吐出垃圾,所以我看到你们是否可以在代码中指出任何明显的缺陷。谢谢!

1 个答案:

答案 0 :(得分:1)

您的实施不正确:

int SumEvens(int arr[], const int size, int evensAdd)
{
   for(int i= 0; i < size; i++){
     std::cout << arr[i] << " ";
  }
  std::cout << std::endl;
  std::cout << size << " " << evensAdd << std::endl;



  int sum = 0;
  for (int i = 0; i <= size; i++){       
         if(evensAdd==0) return sum
         if (arr[i] % 2 == 0){
              sum += arr[i];
              evensAdd--;
         }
      } 
  }
return sum;
}

这不会在evenAdd > size

上中断