我正在编写一个计算净工资的程序。用户将输入与菜单选项相对应的数字(5个选项)。 我已经完成了大部分工作,但是如果他们不输入整数1-5,它应该重新提示用户,它应该重复该程序,直到用户选择退出选项。我尝试了一些goto的东西,它主要起作用,但我被告知要远离goto。
如果用户输入除整数1-5之外的其他内容,并且重复直到输入5,我怎样才能让程序返回到开头?
以下是一些代码: 我删除了一些说出WAGE1 WAGE2等的#define语句。此外,pay()的函数定义不在这里,它工作正常。
#include <stdio.h>
void pay(float wage);
int main(void)
{
int choice;
start :
printf("--------------------------------------------------------------------\n");
printf("Enter the number corresponding to the desired pay rate or action:\n");
printf("1) $8.75/hour 2) $9.33/hour\n");
printf("3) $10.00/hour 4) $11.20/hour\n");
printf("5) quit\n");
printf("--------------------------------------------------------------------\n");
scanf("%d", &choice);
switch(choice)
{
case 1 : pay(WAGE1); break;
case 2 : pay(WAGE2); break;
case 3 : pay(WAGE3); break;
case 4 : pay(WAGE4); break;
case 5 : printf("Goodbye!\n"); break;
default : printf("Please enter 1, 2, 3, 4, or 5.\n");
}
system("PAUSE");
return 0;
}
另外,如果这不是一个好问题,你能告诉我为什么吗?然后我可以在下次问一个更好的。
答案 0 :(得分:0)
删除default
案例并将scanf
更改为
do {
scanf("%d", &choice);
if (choice < 1 || choice > 5)
printf("invalid input.Try again \n");
} while(choice < 1 || choice > 5);