【发布时间】:2021-03-05 14:11:42
【问题描述】:
问题:一个使用递归计算数组中数字重复次数的程序。
我所做的:我已经尝试了所有我知道的方法,我已经使用了一个输出数组来存储数字的索引,并且只需 ++ 到另一个数字以找到与当前数字匹配的数字。似乎没有任何效果,这是一个错误或另一个错误(我是菜鸟)。我尝试在网上寻找解决方案,在 3-4 个网站上找到了解决方案,但不知道发生了什么。
代码如下:
#include <iostream>
using namespace std;
int ind(int a[], int size, int x){
int j;
if(size == 0){
return 0;}
else if (a[0]==x){
j++;
return j;
}
reind(a++,size—,x);
}
int main(){
int a[5] = {1,2,3,3,5};
ind(a, 5, 3);
}
编辑:那个“reind”是一个错字,我仍然得到“ind”的分段错误。很抱歉。
【问题讨论】:
-
将代码作为文本包含在问题正文中,而不是图像
-
int j; j++;通过访问未初始化的变量表现出未定义的行为。 -
ind通过到达非void函数的右大括号而不遇到return语句来表现出未定义的行为。 -
注意编译器警告。你应该有几个。不要忽视它们。
标签: c++ recursion segmentation-fault