繁体   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