gpt4 book ai didi

c++程序运行不正确的else语句

转载 作者:行者123 更新时间:2023-11-28 01:23:04 26 4
gpt4 key购买 nike

当我运行该程序时,我无法弄清楚为什么当我要求输入字母 a、b 或 c 并且输入了除这些以外的其他字母时,为什么会出现“无效条件”而不是“输入了无效代码。当我输入超出范围的数字时,它会转到“输入了无效数字”,但在我要求输入字母时不会出现

#include <iostream>
#include <iomanip>
#include "Header.h"

using namespace std;

int main()
{
head();

int num_1, a, b, c;
char char_1;
float num_2;
num_2 = 28.82;

a = b = c = 0;

cout << "Please enter a number between 10 and 30." << endl;
cin >> num_1;

if (num_1 >= 10 && num_1 <= 30)
{
cout << "Enter the letter a, b, or c." << endl;
cin >> char_1;

if (char_1 == 'a'||'b'||'c')
{

if ((num_1 >= 10 && num_1 <= 20) && (char_1 == 'a'))
{

num_2 = num_2 + .5;
cout << fixed << setprecision(1) << num_2 << endl;

}
else if ((num_1 >= 19 && num_1 <= 30) && (char_1 == 'b'))
{
num_2 = num_2 + .10;
cout << fixed << setprecision(2) << num_2 << endl;

}
else if ((num_1 >= 19 && num_1 <= 30) && (char_1 == 'c'))
{
num_2 = num_2 + .100;
cout << fixed << setprecision(3) << num_2 << endl;
}
else
{
cout << "Invalid criteria" << endl;

}


}
else
cout << "An invalid code has been entered."


}

else
cout << "An invalid number has been entered." << endl;




system("pause");
return 0;
}

最佳答案

表达式:

char_1 == 'a' || 'b' || 'c'

相当于:

char_1 == ('a' || 'b' || 'c')

因此首先评估所有被视为 bool 值的字母的逻辑或(全部为真因此结果为真),然后将那个与您的变量进行比较。

你需要的是:

(char_1 == 'a') || (char_1 =='b') || (char_1 =='c')

这会根据每个可能性检查角色,然后计算出它们是否为真。

关于c++程序运行不正确的else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55213609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com