C ++编码除以整数

时间:2015-09-30 07:48:46

标签: c++ integer

我的代码已经运行但是对于经销商而言,我需要80%作为总成本的数字,并且80%取出,我使用80/100并且总收集乘以,但它显示为0。

#include <iostream> 
#include <string>

using namespace std;

int main()
{
    int Adult_Tickets;
    int Child_Tickets;
    const int Adult_Price = 6;
    const int Child_Price = 3;

    cout << "Adult Tickets sold: " << endl;
    cin >> Adult_Tickets;
    cout << "Child_Tickets sold: " << endl;
    cin >> Child_Tickets;

    double Total_collected;
    int Total_tickets;
    double Average_amount;
    const int Amount_paid = (80/100);
    double Amount_paid_to_distributor;
    double Profit;

    Total_collected = (float)(Adult_Tickets * Adult_Price) + (Child_Tickets *   Child_Price);
    Total_tickets = (float)(Child_Tickets + Adult_Tickets);
    Average_amount = (float)Total_collected / Total_tickets;
    Amount_paid_to_distributor = (float)Total_collected * Amount_paid;
    Profit = (float)Total_collected - Amount_paid_to_distributor;

    cout << "Total Collected $: " << Total_collected << endl; 
    cout << "Average amount collected per ticket $: " << Average_amount << endl;
    cout << "Amount paid to distributor $: " << Amount_paid_to_distributor << endl;
    cout << "Profit $: " << Profit << endl;
    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:4)

只要变量类型为整数值,

const int Amount_paid = (80/100);const int Amount_paid = 0;相同。

如果您想使用浮动号码执行操作,则需要使用floatdouble

尝试更改为:

const double Amount_paid = 0.8;

您在代码中还有许多其他错误。例如,在某个地方使用float,在某处您使用double,然后将其转换为float ...如果您不确定是否需要它,请不要混淆它们将适用于您的问题限制 - 它可能会导致错误和问题。例如,这里:

int Adult_Tickets;
int Child_Tickets;

int Total_tickets;

Total_tickets = (float)(Child_Tickets + Adult_Tickets);

在这里,你有两个int,你总结一下,转为float并分配给int

我建议将float替换为double,并仔细检查所有作业,投射等。

如果我们排除一些代码样式问题,例如大写变量命名,可能的变量声明组合,变量的更精确和不明确的名称等,那么代码应该是这样的。

double Total_collected;
int Total_tickets;
double Average_amount;
const double Amount_paid = 0.8;
double Amount_paid_to_distributor;
double Profit;

Total_collected = Adult_Tickets * Adult_Price + Child_Tickets * Child_Price;
Total_tickets = Child_Tickets + Adult_Tickets;
Average_amount = Total_collected / Total_tickets;
Amount_paid_to_distributor = Total_collected * Amount_paid;
Profit = Total_collected - Amount_paid_to_distributor;

cout << "Total Collected $: " << Total_collected << endl; 
cout << "Average amount collected per ticket $: " << Average_amount << endl;
cout << "Amount paid to distributor $: " << Amount_paid_to_distributor << endl;
cout << "Profit $: " << Profit << endl;