gpt4 book ai didi

c - 如何使用递归打印两个数组,一个接一个(即不同时)?

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:12 25 4
gpt4 key购买 nike

我的代码发布如下,目前打印出“1,6,2,7,3,8,4,9,5,10,DONE”,换句话说,它遍历并打印出第一个数组第一个元素,然后是第二个数组,第一个元素,然后是第一个数组,第二个,第二个数组,第二个,依此类推(对不起,句子连续)。我想要“1,2,3,4,5,6,7,8,9,10,DONE”的输出,以便第一个数组被完全打印出来,然后第二个数组也被打印出来,然后 DONE 被打印出来。 请在此函数中保持递归(我试图了解递归调用函数的基础知识):

#include <stdio.h>
#define N 5
void printcombo(int* a, int* b)
{
int first,second;
first = *a;
second = *b;
if (first != 0 && second !=0)
{
printf("%d,",first);
printf("%d,",second);
printcombo(a+1,b+1);
}
else
{
printf("DONE\n");
}

}


int main()
{
int a[N] = {1,2,3,4,5};
int b[N] = {6,7,8,9,10};
printcombo(a,b);
return 0;
}

如果只更改一小部分代码,我将不胜感激,但很明显,请执行您必须执行的操作。

最佳答案

这是一种变体:

#include <stdio.h>
#define N 6

void printcombo(int* a, int* b)
{
int first,second;
first = *a;
second = *b;
if (first != 0) {
printf("%d ", first);
printcombo(a+1,b);
} else if (second != 0) {
printf("%d ", second);
printcombo(a,b+1);
} else {
printf("DONE\n");
}
}


int main()
{
int a[N] = {1,2,3,4,5,0};
int b[N] = {6,7,8,9,10,0};
printcombo(a,b);
return 0;
}

关于c - 如何使用递归打印两个数组,一个接一个(即不同时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com