2017-03-17 62 views
-2

我的任务是:子集验证使用递归C++

使用is_element_of功能,实现其确定一个阵列是另一种“子集”(即,在阵列中的每一个元素是否也是一个功能阵列b的元素)

bool is_subset(int* a, int length_a, int* b, int length_b) 
bool is_element_of(int i, int* array, int length) 

代码is_element_of

bool is_element_of(int i, int* array, int length) { 
    if (length == 0) 
     return false; 
    else { 
     if (i == array[length - 1] || is_element_of(i, array, length - 1)) 
      return true; 
     else 
      return false; 
    } 
} 

代码is_subset

bool is_subset(int* a, int length_a, int* b, int length_b) { 
    if (length_a == 0 && length_b == 0) 
     return true; 
    else if (length_a != 0 && length_b == 0) 
     return false; 
    else { 
     if (
      is_element_of(a[length_a], b, length_b) && 
      is_subset(a, length_a - 1, b, length_b) 
     ) 
      return true; 
     else 
      return false; 
    } 
} 

可有人请指出问题所在?

+0

btw,我强烈建议不要将支撑控制语句与内联语句混合 - 这就是Heartbleed发生的情况。 – Dai

+0

那么问题是什么?你没有说过。 – Dai

+0

is_subset函数不起作用,我不知道从哪里开始。 – user3908838

回答

0

在is_subset功能,在第二行使用此代码,如果 (length_a == 0)

在管线8使用这个代码,

is_element_of(A [length_a-1 ],b,length_b)& &