所以我必须为我的大学课做一个简单的程序,其中包括一个结构fraction
,分子和分母为ints
,一个函数is_correct()
检查两个条件:是分母!=0
并且是提名者<
分母。如果其中两个是真的,那么我应该返回true
,否则false
。我有义务使用?:
运营商。所以这是我的代码:
struct fraction {int n,d;
bool is_correct(){
d!=0?(return n<d?true:false):return false;
};
};
我的意思是,我想我可以使用条件为if
的{{1}},但我必须只使用d!=0
,而?:
会给我:{{1 }}
答案 0 :(得分:5)
如果其中两个是真的,那么我应该返回true,否则为false
这是一张非常标准的真值表,对吗?
| T | F
---+---+---
T | T | F
---+---+---
F | F | F
我知道一个具有相同真值表的运算符:&&
。
我们根本不需要三元组。我们可以简单地写一下:
return d != 0 && n < d;
更简洁的解决方案如下所示:
return d && n<d;
但我会说第一个解决方案更明确地表达了编码人员的意图,这是一个重要的考虑因素。
答案 1 :(得分:3)
只需将return
移到条件之外(为了清晰起见,添加间距):
return d != 0 ? (n < d ? true : false) : false;
答案 2 :(得分:1)
struct fraction {
int n,d;
bool is_correct() {
return d != 0 ? (n < d ? true : false) : false;
};
};