簡體   English   中英

具有遞歸功能的輸入scanf數組,沒有循環(.c)

[英]Input scanf array with recursively function without loops (.c)

用戶得到我數組的大小,並且我用函數“ MALLOC”分配內存分配,並僅以遞歸方式輸入數組,沒有循環!

我不知道如何用遞歸函數創建一個“循環”。

希望能得到幫助。

謝謝。

遞歸不是很好的用法-在這種情況下,循環更“自然”-但想法是這樣的函數:

void getInput(int howMany)
{
  if (howMany == 0)
    return;
  // get user input
  getInput(howMany-1);
}

因為這似乎是作業,所以我將以偽代碼給出面向作業的答案。

define loop(array, index)
    if index == 0
        return array
    array[index] = get input from user
    loop (array, index-1)

loop(array, array_size)調用它。

我想回應Mat的觀點,即這不是對遞歸的好用。

更新資料

由於您想使用scanf(3)來讀取輸入,因此我將就如何使用它給出更強的提示。 上面,我寫道:

    array[index] = get input from user

您可以使用以下scanf(3)調用編寫此行:

scanf("%d", &array[index]);

這會將一個十進制整數存儲到array[index]位置- &返回數組插槽的地址 ,而不是評估數組預訂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM