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;
}