gpt4 book ai didi

Switch 中的 C 帮助

转载 作者:行者123 更新时间:2023-11-30 21:05:44 24 4
gpt4 key购买 nike

如果我想让案例返回到上一个菜单,我应该在案例中添加什么语句?例如:

int main()
{
int nNum;
int nNum2;
int nNum3, nInTime, nOutTime, nTimeDiff, nNum4, nNum5 nOvertimeHours;
float fBaseSalary;
printf("1-Regular Weekly Salary Computation \n2-Cutomized Salary Computation \n3 -Exit \n\nEnter number: ");
scanf("%d",&nNum);

switch(nNum)
{
case 1:
printf("\nYou have selected Regular Salary Computation!\nDetails:\nDaily Rate:500\nDay Type:Normal\nIn Time:900\nOut Time:900\nNumber of Work Days:5\nWeekly Salary:2500");
break;
case 2:
printf("\nYou have selected Cutomized Salary Computation!\n\nPlease enter number to choose corresponding details:");
printf("\n\nType of Day:\n1-Overtime \n2-Regular Work hours\n\nPlease select number: ");
scanf("%d", &nNum2);
printf("IN time:");
scanf("%d", &nInTime);
printf("OUT time:");
scanf("%d", &nOutTime);
printf("Base Salary:");
scanf("%f", &fBaseSalary);
nTimeDiff = nOutTime - nInTime;
switch(nNum2)
{
case 1:
if(nTimeDiff > 800)
{ printf("\n1-Non-night shift overtime\n2-Night shift overtime\nPlease select number:");
scanf("%d",&nNum3);
switch(nNum3)
{
case 1:
printf("1-Normal Day\n2-Rest Day\n3-Special Non-Working Day\n4-Special Non-Working Day and Rest Day\n5-Regular Holiday\n6-Regular Holiday and Rest Day\nSelect Number:");
scanf("%d", &nNum4);
switch(nNum4)
{
case 1:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Normal Day with Overtime\n");
printf("Salary of the Day |%f", getNormalDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
case 2:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Rest Day with Overtime\n");
printf("Salary of the Day |%f", getRestDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
case 3:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Special Non-Working Holiday with Overtime\n");
printf("Salary of the Day |%f", getSpecialNonWorkingDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
case 4:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Special Non-Working and Rest Day with Overtime\n");
printf("Salary of the Day |%f", getSpecialNonWorkingAndRestDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
case 5:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Regular Holiday with Overtime\n");
printf("Salary of the Day |%f", getRegularHoliDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
case 6:
printf("Base Salary | %f\n", fBaseSalary);
nOvertimeHours = (nTimeDiff - 800 ) / 100;
printf("Overtime Hours(Night Shift OT Hours)| %d(0)\n", nOvertimeHours);
printf("IN Time | %d\n", nInTime);
printf("OUT Time | %d\n", nOutTime);
printf("Day Type |Regular Holiday and Rest Day with Overtime\n");
printf("Salary of the Day |%f", getRegularHolidayAndRestDayNonNightShiftOT(fBaseSalary, nOutTime, nInTime));
break;
}
}
}
else if(nTimeDiff <= 800)
{
printf("Work hours did not exceed 8 hours. Overtime computation invalid.");
return 0;
}
} case 2:
if(nInTime => 2200 || nIntime <=0600 || nOutTime => 2200 || nOutTime <= 600)
printf("1-Normal Day\n2-Rest Day\n3-Special Non-Working Day\n4-Special Non-Working Day and Rest Day\n5-Regular Holiday\n6-Regular Holiday and Rest Day\nSelect Number:");
scanf("%d", &nNum5);
switch(nNum5)
case 1:
}
return 0;
}

我仍在研究它,但我打算在每个 switch 中添加一个额外的 case,这将使用户能够返回到上一个 switch 语句。例如,如果用户一开始按了错误的按钮并选择了错误的选项,则按 3 将使用户返回到上一个菜单

最佳答案

您可以使用 goto 语句。

switch(num1)
switchnum1:
case 1:
printf("Haha");
case 2:
switch(num2)
case 1:
printf("hoho");
case 2:
//go back to the previous switch
goto switchnum1;

但是,这将导致无限循环,除非在 goto 路径中,num1 被修改。如果你想要 num1 == num2,那么所有案例会有 如果(数字 1 == 数字 2) 转到 switchnum1;goto 可以根据您要编程的内容来解决它,但是不建议将 goto 作为良好的编程实践。

关于Switch 中的 C 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com