我試圖編寫一個函數,它可以遞歸地檢測堆棧中負數的整數。目前下面的代碼片段是我的,但是到目前爲止還沒有給出正確的答案。我測試了11個元素和7個底片的堆棧,並得到了下面給出的輸出。循環結構肯定有問題,但我還沒有找到並修復它。任何幫助將不勝感激!無法在遞歸函數中生成正確的輸出?
12356657235681623569772357137235729723574562357617235777623579372358096
我下面的功能:
size_t r_func(stack<int> st1)
{
if(st1.size() == 0) return 0;
int r = st1.top();
st1.pop();
cout << (r<0)+r_func(st1);
}
你也可以顯示函數聲明嗎? – Rufflewind 2014-10-12 00:12:45
@Rufflewind完成! – sparta93 2014-10-12 00:14:00
即使您聲明它返回size_t,您的函數在st1.size()不爲零時也不會返回任何內容。你看到的數字只是堆棧中的隨機垃圾。 (建議:編譯時一直編譯警告。) – Rufflewind 2014-10-12 00:15:25