Я начал проект на C++, чтобы практиковать использование параметров, и я столкнулся с проблемой в своем коде, и я не совсем уверен, почему я получаю значения, которые я получение.Преобразование фунтов в евро - Использование параметров
Это мой код: Когда я запустил его, значения, которые я получаю от displayFinalData
, выводят как 0 вместо значений, которые я ожидаю (что должно быть любым преобразованием и т. Д.).
#include <iostream>
using namespace std;
int main()
{
int numInEuros = 0;
char answer = 'Y';
double sumEuro = 0;
double priceEuro = 0;
int number = 0;
while ((answer == 'Y') || (answer == 'y'))
{
void processAPrice();
processAPrice();
void calculateSum(double priceInEuros, double& sumInEuros);
calculateSum(priceEuro, sumEuro);
cout << "\nDo you wish to continue? (Y/N): ";
cin >> answer;
number += 1;
}
void displayFinalData(double sumInEuros, int number);
displayFinalData(sumEuro, number);
system("pause");
return 0;
}
void processAPrice()
{
double pricePounds;
double priceEuro;
void getPriceInPounds(double& priceInPounds);
getPriceInPounds(pricePounds);
void convertPriceIntoEuros(double priceInPounds, double& priceInEuros);
convertPriceIntoEuros(pricePounds, priceEuro);
void showPriceInEuros(double priceInPounds, double priceInEuros);
showPriceInEuros(pricePounds, priceEuro);
}
void getPriceInPounds(double& priceInPounds)
{
cout << ("\nEnter price in pounds: \x9C");
cin >> priceInPounds;
}
void convertPriceIntoEuros(double priceInPounds, double& priceInEuros)
{
double conversionRate = 0.82;
priceInEuros = (priceInPounds/conversionRate);
}
void showPriceInEuros(double priceInPounds, double priceInEuros)
{
cout << ("\nThe Euro value of \x9C") << priceInPounds << " is EUR " << priceInEuros << "\n";
}
void calculateSum(double priceInEuros, double& sumInEuros)
{
sumInEuros += priceInEuros;
}
void displayFinalData(double sumInEuro, int number)
{
cout << "\nThe total sum is: EUR " << sumInEuro << "\n";
cout << "\nThe average is: EUR " << (sumInEuro/number) << "\n\n";
}
Откуда вы получили представление о размещении объявлений функций внутри функций? 'void showPriceInEuros (double priceInPounds, double priceInEuros);' Это не технически неправильно, но технически неудобно и практически никогда не делается. Объявления функций обычно выходят за пределы всех функций (перед самим телом функции и перед любым использованием функции). – PaulMcKenzie
Просто мне становится легче видеть, куда передаются все значения. Я против любых конвенций, я знаю .. –
Это загромождает код, а другие читают ваше сообщение. Просто объявите функцию снаружи - компилятор сообщит вам, если вы передадите недопустимый параметр. – PaulMcKenzie