本文介绍了错过了逻辑使用recurssion寻找总和,得到了段错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图实现使用recurssion以下,但即时得到段错误请指正??
我试图用一套置换解决问题{1,} 3,5,7但未能输出所需的结果
打印奇数份数,即对于n = 8的所有组合物:
7 + 1
5 + 3
5 + 1 + 1 + 1
3 + 3 + 1 + 1
3 + 1 + 1 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
sumto8(一,启动,SUM1)是://选择关注的元素
sumto8(一,启动,和)://选择关注的元素
#包括LT&;&iostream的GT;
#包括LT&;&stdio.h中GT;INT sumto8为(int *,INT,INT);
INT N = 4;
INT C = 8;诠释的main()
{
诠释一个[] = {1,3,5,7};
sumto8(一,0,C);
}INT sumto8为(int *一,诠释开始,诠释和)
{
如果((总和℃,)||(开始>(N-1)))
返回-1; 如果(总和== 0)
{
COUT<<<< A [开始]。
返回的printf(%d个,一个[开始]);
}
如果(ⅰ== - 1)
{
返回-1;
}
如果(J == - 1)
{
返回-1
}
其他
{
INT SUM1 = SUM-A [开始]。
INT I = sumto8(一,启动,SUM1); INT J = sumto8(一,启动+ 1,总和);
} 返回的printf(%d个,一个[开始]);
}
看来,如果条件求和℃下不检查正常...
输出:段错误
解决方案
你说
i found out that your checking like this
if((sum<0) && (start>(n-1)))
return -1;
how if the "and" you change it to "or"
if((sum<0) || (start>(n-1)))
return -1;
这篇关于错过了逻辑使用recurssion寻找总和,得到了段错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!