C++ 显示基于饮食限制的餐厅选项
这是一个相当基本的问题,但出于某种原因,我不能把它放在一起。我想做的是让用户输入关于饮食限制的Y/N。例如: 你们聚会上有人吃素吗?Y 你们队有人是素食主义者吗?N 你们队有人不含麸质吗?Y 以下是您的餐厅选择: 大街披萨公司 街角咖啡馆 厨师的厨房 我尝试了以下几点:(我仍然是C++新手,所以请原谅这个问题。C++ 显示基于饮食限制的餐厅选项,c++,C++,这是一个相当基本的问题,但出于某种原因,我不能把它放在一起。我想做的是让用户输入关于饮食限制的Y/N。例如: 你们聚会上有人吃素吗?Y 你们队有人是素食主义者吗?N 你们队有人不含麸质吗?Y 以下是您的餐厅选择: 大街披萨公司 街角咖啡馆 厨师的厨房 我尝试了以下几点:(我仍然是C++新手,所以请原谅这个问题。 char Y; int vegan; int vegetarian; int glutenFree; int restrictions; cout << "Is anyon
char Y;
int vegan;
int vegetarian;
int glutenFree;
int restrictions;
cout << "Is anyone in your party vegan? (Y/N)" << endl;
cin >> vegan;
cout << "Is anyone in your party vegetarian? (Y/N)" << endl;
cin >> vegetarian;
cout << "Is anyone in your party gluten free? (Y/N)" << endl;
cin >> glutenFree;
switch (restrictions) {
case 'a':
if(vegan == Y)
cout << "The following resturants offer vegan options" << endl << "Corner Café, The Chef’s Kitchen" << endl;
break;
case 'b':
cout << "Is anyone in your party vegetarian? (Y/N)" << endl;
if(vegetarian == Y)
cout << "The following resturants offer vegetarian options" << endl << "Main Street Pizza Company, Corner Café, Mama’s Fine Italian, The Chef’s Kitchen" << endl;
break;
case 'c':
cout << "Is anyone in your party gluten free? (Y/N)" << endl;
if(glutenFree == Y)
cout << "The following resturants offer gluten-free options" << endl << "Main Street Pizza Company,The Chef’s Kitchen, Corner Café" << endl;
break;
chary;
素食主义者;
素食者;
无麸质;
智力限制;
不能吃素;
不能吃素;
无麸质;
开关(限制){
案例“a”:
如果(纯素==Y)
cout首先,Y
未初始化,因此您可能需要执行类似于chary='Y'
的操作
然后在您的开关语句中,您不包括条件(素食者==Y)
,(素食者==Y)
,(麸质自由==Y)
未满足的情况。因此,只有在用户回答Y
时,您才会得到输出。如果他选择N
,则不会显示任何内容
另外,如果你想存储char
s,我看不出将它们存储为int
s的理由。你应该让vegan
、素食者
和无麸质
char
s。限制应该是什么?具体说明问题是什么。你有错误吗?限制应该是素食者,无麸质,素食。至于错误,实际上是一个错误,但一旦它询问第一个问题,我就可以输入Y,它只运行代码的其余部分,而不需要我为其他问题输入Y或N。限制是一个整数变量,但您要将其与字符进行比较。此外,您不需要初始化它,也不需要在switch
语句。因此,为了解决当用户输入'N'时没有显示的问题,我可以添加一个else if语句?感谢您的帮助!@zleff是的,您应该使用char
来存储chars
,请参见编辑后的答案。这比简单的“为什么存储为int
”更糟糕一些cin>
到int
将不接受字母,这使得用户对此程序的输入有点神秘。要获得'a'
,他们可能必须键入97。