Итак, я пытаюсь написать базовую программу на C++, чтобы получить стоимость чего-либо, количество и вычислить итоговое/промежуточное количество в трех разных функциях, а затем отобразить его в main()
.Передача переменных через функции в C++
Проблема в том, что переменные не выходят из функции, и я не знаю почему. Я поставил операторы вывода внутри самих функций, чтобы проверить, и проблема только в том, что я пытаюсь вытащить их из указанных функций.
#include <iostream>
using namespace std;
int price(int cost)
{
cout << "What is the cost of the robot?" << endl;
cin >> cost;
if (cost < 1000) //validation
{
cout << "Cost is too low. Setting to $1000." << endl;
cost = 1000;
return cost;
}
return cost;
}
int numRobots(int number)
{
cout << "How many robots are being ordered?" << endl;
cin >> number;
if (number < 50) //validation
{
cout << "We only sell in quantities of 50 or more. Setting quantity to 50." << endl;
number = 50;
return number;
}
return number;
}
void grandTotal(int cost, int number, double &subtotal, double &total)
{
subtotal = (cost * number);
total = (subtotal * .07) + subtotal;
}
int main()
{
int cost = 0;
int number = 0;
double subtotal = 0;
double total = 0;
price(cost);`enter code here`
numRobots(number);
grandTotal(cost, number, subtotal, total);
cout << cost; //testing
cout << number; //outputs
cout << total; //of
cout << subtotal; //variables
system("pause");
return 0;
Либо вам нужно передать переменную по ссылке, либо использовать возвращаемое значение функции. Все ваши функции возвращают значения, но вы никогда не используете их для назначения чего-либо, например, вы должны сделать «cost = price (cost)», чтобы вернуть возвращаемое значение в 'cost'. – CoryKramer
Я подумал, что это что-то в этом роде; не присваивая значение чему-либо. Спасибо за быстрый ответ! – Siyrinx
Что делать, если вы вводите линейку бюджетных роботов? –