C程序中具有递归的反向数组

超fkcb

尝试使用递归进行反向数组时遇到问题。这是函数原型:

void rReverseAr(int ar[ ], int size); 

这是我的代码:

int main()
{
    int ar[10], size, i;

    printf("Enter array size: ");
    scanf("%d", &size);
    printf("Enter %d numbers: ", size);
    for (i = 0; i<size; i++)
        scanf("%d", &ar[i]);
    rReverseAr(ar, size);
    printf("rReverseAr(): ");
    for (i = 0; i<size; i++)
        printf("%d ", ar[i]);
    return 0;
}

void rReverseAr(int ar[], int size) {
    int start = 0, end = size - 1, temp;
    if (start < end) {
        temp = ar[start];
        ar[start] = ar[end];
        ar[end] = temp;
        start++;
        end--;

        rReverseAr(ar, size - 1);
    }       
}

预期的输出应该是用户输入1 2 3时应该返回的值3 2 1但是,使用这些代码,我得到的输出是2 3 1

有任何想法吗?

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

您的代码几乎是正确的。唯一的问题是,您不是从两侧“收缩”阵列,而是仅从背面收缩。

递归调用应如下所示:

rReverseAr(ar + 1, size - 2);

您不需要增加start或减少end,因为修改后不使用它们的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有多个应用程序的Golang反向代理

来自分类Dev

具有多个应用程序的Golang反向代理

来自分类Dev

C程序使用递归反向堆栈

来自分类Dev

在C中以递归方式反向链接列表

来自分类Dev

C中具有递归的双链表插入

来自分类Dev

Java中具有递归意识的ThreadPool?

来自分类Dev

具有NaN值的Numpy数组的反向排序

来自分类Dev

具有给定前哨值的反向数组

来自分类Dev

具有反向引用的正则表达式在C ++中不匹配

来自分类Dev

在类别中递归反向NSString

来自分类Dev

如何在递归方法中返回具有累积值的数组

来自分类Dev

使用反向比较器对具有流的数组进行排序

来自分类Dev

Mongoose / MongoDb在数组中查找具有反向引用的文档

来自分类Dev

具有动态数组的C程序中的分段错误(核心转储)错误

来自分类Dev

Javascript-递归查找具有空值的数组中的键

来自分类Dev

如何在C ++中以反向顺序递归打印集?

来自分类Dev

使用C中的递归从txt文件反向打印

来自分类Dev

在汇编程序中反向打印数组

来自分类Dev

使用C中的递归技术来反向链接列表

来自分类Dev

递归C中的反向数组

来自分类Dev

C程序使用递归来反向堆栈

来自分类Dev

在C中以递归方式反向链接列表

来自分类Dev

程序员“反向数组” C#

来自分类Dev

生成所有具有重复的排列。...在C中是非递归的

来自分类Dev

如何在递归方法中返回具有累积值的数组

来自分类Dev

在数组中反向递归以查找父ID

来自分类Dev

PHP中的反向数组具有错误的索引

来自分类Dev

C中的递归。程序必须给出数组的最大元素

来自分类Dev

在 C++ 中使用递归反向数组