#include<iostream>
#include<conio.h>
using namespace std;
int main(){
int salary;
float deduction,netpayable;
switch(salary/10000){
cout<<"enter salary amount :";
cin>>salary;
case 0:
deduction=0;
netpayable = salary;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
case 1:
deduction=1000;
netpayable = salary-deduction;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
default:
deduction=salary*(7/100);
netpayable = salary-deduction;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
}
system("pause");
}
我有雇员,我想制作一个简单的程序,其中我使用 switch 语句来扣除超过 10,000R 的不同员工的工资等等...但是编译器没有显示任何错误,但是程序没有运行并给出一个输出如图所示,我对此有点困惑。
您已在
switch
上添加了 salary
,但没有为变量赋予任何值。这会导致 salary
具有垃圾值。
只需将这些线放在外面
switch
:
cout<<"enter salary amount :";
cin>>salary;
// now start the switch statement here:
switch(...)
{
....
}
这样,您首先提示用户输入
salary
,然后对其进行所需的操作。
我在您的代码中看到 3 个错误。我更正了你的代码并写了注释来突出显示它们。
请看下面:
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
// 1) Declare all variables of same type to avoid implicit casting errors.
// In this case we need float or double types.
float salary;
float deduction;
float netpayable;
// 2) This block must be out of switch instruction!
cout<<"enter salary amount :";
cin>>salary;
// 1.1) The switch will do the expected job
// only if it works on a int variable, so I put an explicit cast
// to (int).
switch((int)(salary/10000)){
case 0:
deduction=0;
netpayable = salary;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
case 1:
deduction=1000;
netpayable = salary-deduction;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
default:
// 3) (7/100) = 0 because compiler interprets it as integer.
// Use (7./100.) instead.
deduction=salary*(7./100.);
netpayable = salary-deduction;
cout<<"netpayable salary is salary-deduction ="<<netpayable;
break;
}
system("pause");
}
c) 用 C++ 编写解决方案。 4分 星光公司调整了员工工资。他们有一定的标准来决定员工工资的总增值额,以下是标准 如果他只参与公司的本地项目,则加薪 10%。 如果他只参与公司的国际项目,则加薪 15%。 如果他参与过公司的本地和国际项目,加薪 20%。 现在你需要询问 3 名员工的姓名、工资并计算他们本月将获得的工资总额。您的输出应该显示每个员工的旧工资和现在他将获得的新工资。注意:使用三个变量来存储每个员工的工资,(使用适当的命名变量来存储员工所从事的本地、国际项目的状态。