【问题标题】:returning 2 values from array using recursion c++使用递归c ++从数组中返回2个值
【发布时间】:2018-11-16 02:00:04
【问题描述】:

这是在数组中查找数字并返回其索引的代码。但是如果我有相同的 2 个数字并且我想返回它们的索引怎么办?

int find_pos (int a[], int index, int n)
{


  if ( a[index] == n) 
  {
    return index;
  }

  else
  {
    return find_pos (a, index + 1, n);
  }
}
int main()

{
  int a[] = {3, 1, 5, 6, 0, 6, 8, 4};

  cout << find_pos (a, 0, 6);

}

【问题讨论】:

  • 您可以使用引用参数或小结构从函数返回多个结果。
  • 你能告诉我如何使用它们吗
  • n 不是第一个元素时,您的函数甚至不会返回正确的结果..
  • 哦,谢谢!我刚刚纠正了它

标签: c++ recursion search


【解决方案1】:

您可以使用vector&lt;int&gt; 来保存找到值的索引。也就是说,不是在找到匹配值时返回,而是将索引保存到向量中并继续搜索。这意味着您的递归基本情况必须更改。您必须一直搜索到数组的末尾。由于您使用的是 C 样式的数组,因此您还必须传入数组的长度,以便递归函数调用可以知道何时停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 2021-03-14
    • 2012-10-16
    • 1970-01-01
    • 2013-08-07
    • 2013-12-12
    • 2021-06-11
    • 2021-08-07
    相关资源
    最近更新 更多