首页 > 解决方案 > 使用逻辑运算符返回值

问题描述

当有逻辑运算符时,谁能向我解释这个返回是如何工作的?还要解释一下这个函数什么时候返回自己和数组元素?

#include<stdio.h>
int consecutive_3(int x, int y, int z, int a[], int n)
{
    if(n<3)
       return 0;
    return ((a[n-3] == x) && (a[n-2] == y) && (a[n-1] == z)) || consecutive_3(x, y, z, a, n-1);
}

标签: crecursionreturn-valuelogical-operators

解决方案


应该是一样的

int consecutive_3(int x, int y, int z, int a[], int n)
{
    if (n < 3)
       return 0;

    if ((a[n-3] == x) && (a[n-2] == y) && (a[n-1] == z))
       return 1;

    return consecutive_3(x, y, z, a, n - 1);
}

注意: c 从左到右计算逻辑表达式,并且&&具有比 .更高的优先级(首先计算)||


推荐阅读