有人能在我的代码中找到与C++中的IF语句相关的问题吗
Can someone find the problem in my code related to IF STATEMENT in C++?
#include <iostream>
using namespace std;
int max_of_four(int q, int w, int e, int r)
{
int x;
if( q > w && q > e && q > r)
{int x = q;}
else if( w > q && w > e && w > r)
{int x = w;}
else if( e > w && e > q && e > r)
{int x = e;}
else if( r > w && r > e && r > q)
{int x = r;}
else{x = 0;}
return x;
}
int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
cout << max_of_four(a, b, c, d);
return 0;
}
无论输入是什么,它总是输出0。
我想我在if statement
条件下错过了什么,请有人帮忙!
在if的int x = q;
中定义了一个新变量x
,并且不会修改稍后返回的x
。
您可能只是希望x = q;
为x
分配一个新值。这也适用于其他if。
或者你可以一起跳过任务:
int max_of_four(int q, int w, int e, int r)
{
if( q > w && q > e && q > r)
{ return q; }
else if( w > q && w > e && w > r)
{ return w; }
else if( e > w && e > q && e > r)
{ return e; }
else if( r > w && r > e && r > q)
{ return r; }
return 0;
}
实际上,如果您有C++11
或更高版本,那么std::max()
可以将初始值设定项列表作为其参数:
int max_of_four(int q, int w, int e, int r)
{
return std::max({ q, w, e, r }); // Need to #include <algorithm> for std::max
}
除了重新定义变量x外,当q、w、e或r的值相同时,您的测试条件可能会被修剪,但这是不够的。从逻辑上讲,返回值应该是四个变量中的任何一个,但它永远不应该返回零。
int max_of_four(int q, int w, int e, int r)
{
int max = q;
if (w > max ) max = w;
if (e > max ) max = e;
if (r > max ) max = r;
return max;
}
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 我似乎对if/else的基本语句有问题:/
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- c++:定义if语句中的模板
- C++嵌套的 If 语句中,它无法按预期工作
- 如果中的多个语句是否与多个 if 相同?
- C++ If/Else 语句被跳过
- 使用语句if时逻辑的问题
- 如何添加语句if-else
- 如何将语句if(isalpha(c))从c++转换为MIPS ?
- 在if语句if C++中创建对象时出现作用域问题
- if语句-if/else和参数放置C++