我需要编写一个函数,输入数组的大小并分配内存,并将值读取(scanf)到这个数组。
我写了这个函数,但它不起作用:
void getss(int array[], int size)
{
int counter = 0;
if (size == 0)
return;
if (counter < size) {
scanf("%d", &array[i]);
counter++;
}
getss(array, size - 1);
}
最佳答案
目前还不清楚您要实现的目标。但我猜你的数组参数在递归调用中不正确。现在所有对 getss 的调用都得到相同的数组但大小不同。 (变量i从哪里来?变量counter在贴出的代码中用处不大。)
我假设您需要在递归调用中更新数组指针以指向数组中的下一个元素。换句话说,传递数组中第二个元素的地址而不是第一个元素(当前行为)。那将与递归调用中的 size-1 一致。
实现是微不足道的,但作为练习留给海报,因为这对我来说就像家庭作业。
关于c - 具有无循环递归函数的输入数组 (.c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8623590/