输入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]
位置 – &
返回数组插槽的地址 ,而不是评估数组预订。