如何使用用户输入的变量来定义另一个变量

时间:2016-02-05 04:04:48

标签: c++ variables input cin

我正在编写一个程序,用于显示员工的信息(预定义),即输入身份证号码后的名字,姓氏,年龄,身份证号码,工资总额,税额和净工资工作时间。非常基本的是吗?

我的问题是,在接受工作时间后,我无法让编译器执行正确的计算,以便给出工资总额,税额和净工资。

基于我所看到的问题是这些计算中涉及的主要变量,即totalHoursWorked基于用户输入。

如果我声明同一个变量并为其分配一个金额,那么计算运行平稳并输出正确的值,但这是一个问题,因为用户需要能够输入从.1到{{40的任何值1}}(表示最多40个工作小时)。

但是,当我删除指定的值并要求用户输入时,一切都会出错。

下面我写了我遇到问题的部分代码。这只是一个粗略的草稿,可以帮助我想象出问题所在,并专注于调整它:

#include <iostream>
using namespace std;

int main()
{

    double hourlyRate=7.5;
    double taxPercentage=0.16;
    double totalWorkHours;
    double grossSalary=hourlyRate*totalWorkHours;
    double taxAmount=grossSalary*taxPercentage;
    double netSalary=grossSalary-taxAmount;

    cout<<"Please enter total work hours"<<endl;

    cin>>totalWorkHours;

    cout<<grossSalary  <<endl;

    cout<<taxAmount  <<endl;

    cout<<netSalary  <<endl;

    system ("pause");
    return 0;

}

这是我得到的输出:

Please enter total work hours

40                  <----i input 40 here

3.95253e-323 <--- These are the results of the calculations

4.94066e-324

3.45846e-323

Press any key to continue..._

5 个答案:

答案 0 :(得分:1)

我认为OP思考中的实际问题是他们认为C ++是一种象征性的数学符号。即,根据公式定义与前三个公式的关系,然后传递具体值以更新结果。但是,这不是真的。发布的代码的作用是根据grossSalary的值来计算taxAmountnetSalarytotalWorkHours的值,正如已经说过的那样,未定义和垃圾,以及然后totalWorkHours分配一个新值,这不会影响已执行的计算。

答案 1 :(得分:0)

在您阅读totalWorkHours之前,您正在进行计算,因此计算基于该位置内存中的任何随机值。

答案 2 :(得分:0)

尝试更简单的方法:

int A = 1;
int B = A + 1;

A = 3;
cout  << B << endl;

结果为2

C ++中的语句与数学中的联立方程式不同,它们是赋值,它们可能会被后来的赋值所黯然失色。声明:

int B = A + 1;

相当于:

int B;
B = A + 1;

您已将B的值设置为2,并且分配已结束。然后,您可以将A的值设置为您喜欢的任何值,它将对B没有影响。

答案 3 :(得分:0)

尝试在用户输入工作时间后进行计算。定义totalWorkHours,然后询问他们输入,然后用他们的计算定义所有其他变量。应该工作!

答案 4 :(得分:0)

我不熟悉c ++。我开始用它,但我的课程都是java所以......它已经有一段时间了。任何这就是我要做的事。

double hourlyRate=7.5;
double taxPercentage=0.16;
double totalWorkHours;
double grossSalary;
double taxAmount;
double netSalary;

cout<<"Please enter total work hours"<<endl;

cin>>totalWorkHours;

grossSalary = hourlyRate*totalWorkHours;
cout<<grossSalary  <<endl;
taxAmount = grossSalary*taxPercentage;
cout<<taxAmount  <<endl;
netSalary = grossSalary-taxAmount;
cout<<netSalary  <<endl;

system ("pause");
return 0;

这是我的两分钱。