c - 使用逻辑运算符返回值
问题描述
当有逻辑运算符时,谁能向我解释这个返回是如何工作的?还要解释一下这个函数什么时候返回自己和数组元素?
#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);
}
解决方案
应该是一样的
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 从左到右计算逻辑表达式,并且&&
具有比 .更高的优先级(首先计算)||
。
推荐阅读
- javascript - Node.js - 使用 PKG 创建可执行文件
- c# - 需要帮助来根据 C# 中的子项计数对我的数据集执行批处理
- docker - Windows10 主页上的 Docker - 在 docker 容器内连接到 docker 引擎
- mysql - 从库存数据库中高效查询产品变体(避免 EAV)
- javascript - 确保用户在更新后获得最新版本网站的正确方法
- python - 根据 pandas 的每日回报计算每月回报(加元)
- html - 更改字体真棒圆圈图标的背景颜色
- apache-nifi - 来自 SplitRecord 处理器 Nifi 的运行记录数
- node.js - 如何使用 google puppeteer 保存完整的网页?
- c# - Windows 窗体 Web 浏览器控制缩放级别