编译时没有错误......但是我的输出没有任何结果。我知道这是一个非常愚蠢的编码尝试...我大多数都在使用数字......字符串的东西让我感到困惑。
#include <iostream>
#include <string>
using namespace std;
char chr;
int main()
{
string name;
string artist;
string Taylor;
string Alan;
string general;
string box;
string seating;
cout << "Enter your name followed by the return key" << endl;
cin >> name;
cout << endl;
cout << "Enter Taylor for Taylor Swift tickets or Alan for Alan Jacskon seats, followed" << endl << "by the enter key" << endl << endl;
cout << "Enter box for box seating or general for general seating, followed by the enter key" << endl << endl;
cin >> artist;
cin >> seating;
if ( artist + seating == Taylor + general )
cout << name << ", Your ticket will cost $60" << endl;
else if ( artist + seating == Taylor + box )
cout << name << ", Your ticket will cost $100" << endl;
else if ( artist + seating == Alan + box )
cout << name << ", Your ticket will cost $75" << endl;
else if ( artist + seating == Alan + general )
cout << name << ", Your ticket will cost $50" << endl;
cin >> chr;
return 0;
}
答案 0 :(得分:2)
Taylor
,Alan
,general
和box
在您的逻辑文字值中,而不是变量......您的代码应该成为
string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";
在C ++中,你不能只写
if ( artist + seating == "Taylor" + "general" )
由于原因太复杂而无法解释,您可以改为删除这些值的变量并使用
if ( artist + seating == "Taylorgeneral" )
BTW:我不确定C ++是否是学习编程的好选择。在我看来,更适合这项工作Python(或者用汇编程序编写6502之类的简单CPU,但这是另一种完全不同的方法)。
答案 1 :(得分:1)
字符串Taylor, Alan, general, box
永远不会被初始化。比较它们毫无意义。
你可能想要的是:
string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";
答案 2 :(得分:0)
当我将if语句更改为此格式时,它们起作用了。
if((artist ==“Taylor”)&amp;&amp;(seat ==“general”))
cout << name << ", Your ticket will cost $60" << endl;
答案 3 :(得分:0)
你还没有初始化字符串泰勒;艾伦;一般的;弦盒;所以它们都是''\ 0',它不匹配任何情况,所以你得不到输出。 什么,更多当你使用cin进行输入时,它会忽略'\ n','',你也可以使用cin.getline(string a)作为输入