这个代码有些错误。我输入“gender-m,age-20,tickets-10” 它给了我3200.它应该是3500.我不知道它有什么问题,你能帮我吗? iiiiiiiiiiiiiiiiiiii
#include<iostream>
using namespace std;
int main()
{
char gender;
int age, numTix, premium;
cout << "Enter your gender: ";
cin >> gender;
cout << "Enter your age: ";
cin >> age;
cout << "Tickets you have gotten: ";
cin >> numTix;
if (gender == 'M')
{
if (age < 21)
{
premium = 1500 + 200 * numTix;
}
else if (age >= 21 && age < 30)
{
premium = 1200 + 100 * numTix;
}
else
{
premium = 1000 + 100 * numTix;
}
}
else
{
if (age < 21)
{
premium = 1200 + 200 * numTix;
}
else
{
premium = 1000 + 100 * numTix;
}
cout << "Your premium is $" << premium << endl;
}
system("pause");
return 0;
}
答案 0 :(得分:1)
'm'与'M'不同。
答案 1 :(得分:1)
问题是字符大小写:您输入了m
,但您的代码正在检查M
,这是一个完全不同的字符。
有两种常见的解决方法:
topuuer
,即gender = toupper(gender);
或m
和M
进行比较,即if (gender == 'M' || gender == 'm')
答案 2 :(得分:1)
输入'M'而不是'm'。 Ascii值对于两者都不相同,因此正在执行的逻辑给出3200。