如何使用用户输入的变量来定义另一个变量
How to use a user inputted variable to define another variable
我正在编写一个程序,它将显示员工的信息(预定义),即名字、姓氏、年龄、身份证号码、工资总额、税额和输入身份证号码后的净工资和工作的小时数。很基本是吗?
我的问题是,在接受工作时间后,我无法让编译器执行正确的计算以提供总工资、税额和净工资。
根据我所看到的问题,这些计算中涉及的主要变量,即 totalHoursWorked
是基于用户输入的。
如果我声明同一个变量并为其分配一个数量,那么计算 运行 会顺利并输出正确的值,但这是一个问题,因为用户需要能够从 .1
到 40
(表示最多 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..._
您是在读入 totalWorkHours
之前进行计算,因此计算基于该位置内存中碰巧存在的任何随机值。
尝试更简单的方法:
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.
尝试在用户输入工作时间后进行计算。定义 totalWorkHours
然后要求他们输入,然后用他们的计算定义所有其他变量。应该可以!
我认为 OP 的实际问题在于他们将 C++ 视为一种符号数学符号。即,定义与前三个公式的关系,然后根据公式传递一个具体值来更新结果。然而,这不是真的。发布的代码所做的是根据 totalWorkHours
的值计算 grossSalary
、taxAmount
和 netSalary
的值,正如已经说过的那样,它是未定义的和垃圾,并且然后给totalWorkHours
分配一个新值,这不会影响已经执行的计算。
我不熟悉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;
那是我的两分钱。
我正在编写一个程序,它将显示员工的信息(预定义),即名字、姓氏、年龄、身份证号码、工资总额、税额和输入身份证号码后的净工资和工作的小时数。很基本是吗?
我的问题是,在接受工作时间后,我无法让编译器执行正确的计算以提供总工资、税额和净工资。
根据我所看到的问题,这些计算中涉及的主要变量,即 totalHoursWorked
是基于用户输入的。
如果我声明同一个变量并为其分配一个数量,那么计算 运行 会顺利并输出正确的值,但这是一个问题,因为用户需要能够从 .1
到 40
(表示最多 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..._
您是在读入 totalWorkHours
之前进行计算,因此计算基于该位置内存中碰巧存在的任何随机值。
尝试更简单的方法:
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.
尝试在用户输入工作时间后进行计算。定义 totalWorkHours
然后要求他们输入,然后用他们的计算定义所有其他变量。应该可以!
我认为 OP 的实际问题在于他们将 C++ 视为一种符号数学符号。即,定义与前三个公式的关系,然后根据公式传递一个具体值来更新结果。然而,这不是真的。发布的代码所做的是根据 totalWorkHours
的值计算 grossSalary
、taxAmount
和 netSalary
的值,正如已经说过的那样,它是未定义的和垃圾,并且然后给totalWorkHours
分配一个新值,这不会影响已经执行的计算。
我不熟悉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;
那是我的两分钱。