c - 具有无循环递归函数的输入数组 (.c)

标签 c

我需要编写一个函数,输入数组的大小并分配内存,并将值读取(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/

相关文章:

c - C99 inline 背后的想法是什么?

c - 堆中的 vector 与堆栈中的 vector

c - 是 printf ("%d",*(++(*a)));不明确的

c - 有没有成熟的二元决策图工具可用?

c - 在 C 程序之间共享变量值

c# - C#中的CRC16计算?

c - 尝试 malloc 时具有特定输出的 Valgrind 泄漏和段错误

c - 如何将 int 转换为十六进制,然后将其转换为字符串格式?

c - Windows Hook 过程的问题

c - 在 [ C ] 中查找字符串函数