【问题标题】:Can't calculate final total [duplicate]无法计算最终总数[重复]
【发布时间】:2021-03-30 02:17:35
【问题描述】:

我无法获得该程序的最终总数,我在函数中有total+=amount;,但它没有成功,我已经设置了所有变量,但我不太确定我可以放置在哪里一行代码让它计算总数。

#include <iostream>
#include<string>
#include<iomanip>
using namespace std;
float calculateCharges(float hours, float &total);

int main()

{
    int MAX=3;
    float charge[MAX];
    float hours[MAX];
    float total=0;
    int i;
    int columns[]={10,9,10};

    for(i=0; i<MAX; i++)
    {
        cout << "Enter the amount of hours for customer " <<i+1<<": ";
        cin >> hours[i];
        charge[i] = calculateCharges(hours[i], total);
    }


    string border;
    border.assign(columns[0]+columns[1]+columns[2], '-');
    cout<<border<<endl
        <<left<<setw(columns[0])<<"customer"
        <<setw(columns[1])<<"hours"
        <<setw(columns[2])<<"charge"
        <<endl;

    for(i=0; i<MAX; i++)
        cout<<left<<setw(columns[0])<<i+1
            <<right<<setw(2)<<fixed<<setprecision(2)<<hours[i]
            <<setw(columns[2])<<charge[i]<<endl; 
    cout<<border<<endl;
    cout<<right<<setw(columns[0]+columns[1])<<"total: "<<left<<" $"<<total<<endl;
    return 0;

}

float calculateCharges(float hours, float &total)
{
    float amount = 20 + (5*((int)hours-3));
    if((int)hours<=3)
        return 20;
    else return amount;
}

【问题讨论】:

  • 这是否正确:assign(columns[0] + columns[1] + columns[2], '-');?这会将columns 之前 的前3 个值传递给assign 函数。

标签: c++


【解决方案1】:

动作 += 在返回后“发生”.. 所以它不会发生

我想你的意思是:

float calculateCharges(float hours, float &total)
{
    float addToTotal = 20;
    float amount = 20 + (5*((int)hours-3));
    if((int)hours>3)
        addToTotal= amount;
    total+=addToTotal;
    return addToTotal;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多