如何使用右边的递归遍历在数组中打印偶数?

时间:2017-07-01 21:31:13

标签: c recursion

#include <stdio.h>
//Compiler version gcc 6.3.0
void print(int a[5],int n){
    n--;
    if(a[n]%2==0)
       print(a,n);
    printf("%d",a[n]);
}
int main(void){
  int a[] = {1,2,3,4,5};
  print(a,5);
  return 0;
}

你怎么只打印那个数组中的偶数..通过最后一个元素显然代码不起作用所以如何去做?

1 个答案:

答案 0 :(得分:2)

即使数字为奇数,或者递归停止,您也必须调用print

当值为偶数时,也只有printf,当n索引为负数或您有访问权限违规时停止。

修正:

void print(int a[],int n)
{
   n--;
   if (n>=0)
   {
     print(a,n);
     if(a[n]%2==0)
     {
       printf("%d ",a[n]);
     }
   }
}

打印:2 4