c - if 条件中 '%' 标记之前的预期表达式
问题描述
我对只学习 C 语言很感兴趣,但我遇到了错误,这让我陷入了一个笑点:-)。
int lowest() {
int c1,c2,c3,min;
printf("Type three integer numbers: ");
scanf("%d %d %d",&c1, &c2, &c3);
if ((c1 < c2) %% (c1 < c3)) { // SOMWHERE HERE IS MISTAKE
min = c1;
printf("Lowest from %d, %d, %d is %d", c1,c2,c3, min);
} else if ((c2 < c1) %% (c2 < c3)) {
min = c2;
printf("Lowest from %d, %d, %d is %d", c1,c2,c3, min);
} else {
min = c3;
printf("Lowest from %d, %d, %d is %d", c1,c2,c3, min);
}
}
函数在另一个主函数中调用。
解决方案
要么你的语法错误,要么是一个无辜的错字。无论哪种方式,错误来自
if ((c1 < c2) %% (c1 < c3)) { // SOMWHERE HERE IS MISTAKE
具体来说,%%
不是算子。
三个逻辑运算符的简短说明 :
逻辑与运算符:&&
// (7 > 0 && 6 > 0) == true
// (7 > 0 && 6 < 0) == false
如果两个条件都满足true
,则返回true
。否则,它返回false
逻辑或运算符:||
// (7 > 0 || 6 > 0) == true
// (7 > 0 || 6 < 0) == true
// (7 < 0 || 6 < 0) == false
如果其中任何一个条件成立true
,则返回true
。否则,它返回 false。
逻辑运算符NOT:!
!
运算符只是反转表达式。例如,
// !true == false
// !(any true statement) == false
// !(any false statement) == true
// (!(6 < 0)) == true
// (!(6 > 0)) == false
我相信您打算使用逻辑&&
运算符。如果是这样,请更正它,并且不会再有任何错误。所以正确的表达方式应该是
if ((c1 < c2) && (c1 < c3)) {
//Do something...
}
推荐阅读
- php - 为什么 Eloquent 在插入数据库时看不到模型中的所有字段
- node.js - 是否可以使用节点 http 模块托管具有 angular.min.js 功能的网页
- python - “str”对象没有属性“visible_fields”
- c++ - Qt 5.12.1 MSVC 静态构建 .qmake.super
- logging - Yii2 - 将自定义消息添加到日志文件
- pandas - 如何使用列中的每一对值并将它们转置为组内的行(groupby)
- c# - Entity Framework 响应慢,但生成的查询在 SqlDeveloper 工作表中运行很快
- kubernetes - 为什么 kube-proxy 不将流量路由到另一个工作节点?
- python - 如何使用 Python 从两列 pdf 中提取文本?
- c++ - 是否可以配置 UDP 多播套接字以便调用 write() 而不是 sendto()?