当程序到达函数调用时,程序似乎只是忽略它并继续前进。结果是一个无限循环,不允许输入商品或价格。
我对C ++还是很陌生,所以我仍在学习其语法的基础知识。如果有人能发现我做错了什么或予以解释,我将不胜感激。
#include <iostream>
#include <string>
using namespace std;
void itemPriceDisplay(string item1, string item2, string item3, string item4, string item5, int item1Price, int item2Price, int item3Price, int item4Price, int item5Price);
string addItems();
int addPrice(string item1, string item2, string item3, string item4, string item5);
int main()
{
//////////////
// Variables//
//// Below////
string moreItems = "Y";
//////////////
// Variables//
////Above////
std::cout << "This program will display a list of inputed items their prices, and then calculate the total and tax.\n\n\n";
while( (moreItems == "Y") || (moreItems == "y") )
{
string addItems();
int addPrice();
cout << "Would you like to list another item? (Y/N)";
cin >> moreItems;
void itemPriceDisplay();
}
return 0;
}
string addItems()
{
string item1;
string item2;
string item3;
string item4;
string item5;
cout << "Enter the name of the first item: ";
cin >> item1;
cout << "Enter the name of the second item: ";
cin >> item2;
cout << "Enter the name of the third item: ";
cin >> item3;
cout << "Enter the name of the fourth item: ";
cin >> item4;
cout << "Enter the name of the fith item: ";
cin >> item5;
return 0;
}
int addPrice(string item1, string item2, string item3, string item4, string item5)
{
int item1Price;
int item2Price;
int item3Price;
int item4Price;
int item5Price;
cout << "Enter the price of the " << item1 << ": ";
cin >> item1Price;
cout << "Enter the price of the " << item2 << ": ";
cin >> item2Price;
cout << "Enter the price of the " << item3 << ": ";
cin >> item3Price;
cout << "Enter the price of the " << item4 << ": ";
cin >> item4Price;
cout << "Enter the price of the " << item5 << ": ";
cin >> item5Price;
return 0;
}
void itemPriceDisplay(string item1, string item2, string item3, string item4, string item5, int item1Price, int item2Price, int item3Price, int item4Price, int item5Price)
{
// List items and their price.
cout << "\n Here is a list of your entered items and their prices: \n\n"
<< item1 << " $" << item1Price << "\n"
<< item2 << " $" << item2Price << "\n"
<< item3 << " $" << item3Price << "\n"
<< item4 << " $" << item4Price << "\n"
<< item5 << " $" << item5Price << "\n";
return;
}
我正在尝试建立一个涉及调用两个函数的循环,然后询问用户是否希望再次运行它。如果没有,则程序应运行一个最终功能以输出结果。
答案 0 :(得分:1)
您遇到一些问题:
1>在while循环中,您仅声明了一些函数,而不执行它们。
while( (moreItems == "Y") || (moreItems == "y") )
{
string addItems(); // Only Declared the function addItem(), don't execute it
int addPrice(); // Only declared the function addPrice(), don't execute it
cout << "Would you like to list another item? (Y/N)";
cin >> moreItems;
void itemPriceDisplay(); // Only declared the function itemPriceDisplay, don't execute it
}
要执行它们,必须从它们获取返回值。 例如:
要执行执行程序addItem(),itemPriceDisplay(),您需要执行以下操作:
string result = addItem();
int price = addPrice();
itemPriceDisplay();
2>函数addItem()返回字符串,但您始终只返回0。
答案 1 :(得分:0)
这些行:
string addItems();
int addPrice();
void itemPriceDisplay();
请勿拨打任何电话。它们导致没有可执行代码。他们所做的是告诉编译器一个函数存在。第一个是说“嘿,编译器,有一个名为addItems
的函数,它返回一个string
并且不带任何参数。其他两个参数与此类似。
在函数调用之前永远不要这样的类型名称。
尝试将显示string addItems();
的行改为仅显示addItems();
。这应该导致函数addItems
被调用。
现在,您在声明函数addPrice
和itemPriceDisplay
的地方并没有那么简单地转换为函数调用。根据上面的声明,这些函数带有参数和值,这些参数告诉它们要做什么。您没有任何明显的参数可以提供它们。
就个人而言,查看程序的其余部分,我认为您对功能是什么以及如何调用它们有一些非常深刻的误解。我认为这超出了StackOverflow回答的范围。