输入scanf数组,递归函数没有循环(.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]位置 – &返回数组插槽的地址 ,而不是评估数组预订。