2017-03-17 55 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)& &