C++ 为什么我的输出错误? #包括 #包括 #包括 使用名称空间std; const double COUNTY_TAX=0.02; const double STATE_TAX=0.04; 双倍销售额; 作废countyTax(双新countyTax); 无效州税(双重州税); 无效总额(双倍新总额); int main() { 总销售额; countyTax(1); 州税(1); 总数(1); 返回0; } void countyTax(双新countyTax) { 双纽康蒂萨; newCountyTaxA=总销售额*县税; cout
在C++ 为什么我的输出错误? #包括 #包括 #包括 使用名称空间std; const double COUNTY_TAX=0.02; const double STATE_TAX=0.04; 双倍销售额; 作废countyTax(双新countyTax); 无效州税(双重州税); 无效总额(双倍新总额); int main() { 总销售额; countyTax(1); 州税(1); 总数(1); 返回0; } void countyTax(双新countyTax) { 双纽康蒂萨; newCountyTaxA=总销售额*县税; cout,c++,C++,在countyTax和stateTax中创建和计算的变量newStateTaxA和newCountyTaxA是这些函数的局部变量。函数完成后,这些变量及其包含的值将消失。在total中,您将创建具有相同名称的新局部变量。除了共享名称之外,它们与先前定义的变量没有关系,并且不会存储先前在其他两个函数中计算的值 void total(double newTotal) { double newTotalA, newStateTaxA, newCountyTaxA; newTotalA
countyTax
和stateTax
中创建和计算的变量newStateTaxA
和newCountyTaxA
是这些函数的局部变量。函数完成后,这些变量及其包含的值将消失。在total
中,您将创建具有相同名称的新局部变量。除了共享名称之外,它们与先前定义的变量没有关系,并且不会存储先前在其他两个函数中计算的值
void total(double newTotal)
{
double newTotalA, newStateTaxA, newCountyTaxA;
newTotalA = newStateTaxA + newCountyTaxA;
cout << "The total is: $" << newTotalA << endl;
}
最简单的解决方案(虽然不被认为是最稳健的)是在全局范围内创建两个变量,以及totalSales
,以便在两个函数中分配给它们的值保持不变
如果不希望使用全局变量(我也不想使用),可以在主函数中声明它们,并修改其他函数以返回计算值:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const double COUNTY_TAX = 0.02;
const double STATE_TAX = 0.04;
double totalSales;
void countyTax(double newCountyTax);
void stateTax(double newStateTax);
void total(double newTotal);
int main ()
{
cout << "Please enter the total dollar amount of sales: $";
cin >> totalSales;
countyTax(1);
stateTax(1);
total(1);
return 0;
}
void countyTax(double newCountyTax)
{
double newCountyTaxA;
newCountyTaxA = totalSales * COUNTY_TAX;
cout << "The county tax is: $" << newCountyTaxA << endl;
}
void stateTax(double newStateTax)
{
double newStateTaxA;
newStateTaxA = totalSales * STATE_TAX;
cout << "The State tax is: $" << newStateTaxA << endl;
}
void total(double newTotal)
{
double newTotalA, newStateTaxA, newCountyTaxA;
newTotalA = newStateTaxA + newCountyTaxA;
cout << "The total is: $" << newTotalA << endl;
}
您在以下代码中犯了一个根本性错误:
newCountyTaxA = countyTax(1);
void总计(双倍新总计)
{
双新总科,新总科,新总科;
newTotalA=NewStateTasa+newCountyTaxA;
不能包含
#包括
#包括
使用名称空间std;
const double COUNTY_TAX=0.02;
const double STATE_TAX=0.04;
双倍销售额;
使税收无效();
int main()
{
总销售额;
税收();
返回0;
}
无效税()
{
双重国家税,州税,总计;
countyTax=总销售额*县税;
州税=总销售额*州税;
总计=countyTax+州税;
不欢迎使用Stack Overflow。请花时间阅读并参考“您可以在此处询问什么和如何提问”中的材料。请阅读“编写一个总结特定问题的标题”实际标题:“为什么我的输出错误?”来吧…抱歉,senpai。如果我只是把我想做的所有计算放在一个模块中,使它们都在同一范围内,保持我不希望它们是全局的,并且我仍然可以在主模块中调用该模块,这会不会不那么有建设性?@AlexChapman i更新以显示所有全局变量的替代方案。
void total(double newTotal)
{
double newTotalA, newStateTaxA, newCountyTaxA;
newTotalA = newStateTaxA + newCountyTaxA;
cout << "The total is: $" << newTotalA << endl;
}
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const double COUNTY_TAX = 0.02;
const double STATE_TAX = 0.04;
double totalSales;
void Taxes();
int main ()
{
cout << "Please enter the total dollar amount of sales: $";
cin >> totalSales;
Taxes();
return 0;
}
void Taxes()
{
double countyTax, stateTax, total;
countyTax = totalSales * COUNTY_TAX;
stateTax = totalSales * STATE_TAX;
total = countyTax + stateTax;
cout << "The County Tax is: $" << fixed << setprecision(2) << countyTax << endl;
cout << "The State Tax is: $" << fixed << setprecision(2) << stateTax << endl;
cout << "The total is: $" << fixed << setprecision(2) << total << endl;
}