我有一個遞回顯示函式,旨在遍歷陣列 b 的值并列印詳細資訊。我的函式成功地回圈了正確的次數,但只列印出索引 0 處的值。例如,如果我有 3 本書,它會列印出第一本書 3 次,并且不會轉到其他值。我是一名初學者程式員,我相信我遺漏了一些非常簡單或明顯的東西,但感謝您提供任何幫助。
void displayBooks(int n)
{
// Write the code below
if (n >= currentCount) {
return;
}
else {
cout << "Name: " << b->getName() << "\n";
cout << "Name of Book Author: " << b->getAuthor() << "\n";
cout << "Publication Year: " << b->getYearOfPublication() << "\n";
cout << "ID: " << b->getID() << "\n";
displayBooks(n 1);
}
}
這是函式本身,但是我無法顯示完整的程式,因為它是包含多個檔案的大量代碼。當函式在 switch case 中第一次被呼叫為 displayBooks(0) 時。
uj5u.com熱心網友回復:
我相信您沒有列印出訪問每個索引所需的“b”變數的每個索引。您需要將 b 作為指標陣列,然后訪問該變數的索引,例如b[n]->someProperty();
您可以像這樣創建陣列:
Obj* b[HOWMANY];
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520621.html
標籤:C 递归
下一篇:打破python中的遞回回圈
