我对编写一个程序感到困惑,该程序从用户那里获取'/'字符并警告用户不要在分子中使用0。我已经构建了这个程序,但我希望有一种替代方法来使用goto
语句。
# include <stdio.h>
int main()
{
char o;
int num1,num2;
printf("Enter one operator like '+' '-' '/' '%%' '*' : ");
scanf("%c",&o);
printf("Enter 1st number: ");
scanf("%d",&num1);
my: printf("Enter 2nd number: ");
scanf("%d",&num2);
我希望删除以下两行代码,但是它应该实现与原来相同的结果。
if(o=='/' && num2==0 ){
printf("You can't divide by zero \n");
goto my;
}
switch(o) {
case '+':
printf("%d + %d = %d",num1, num2, num1+num2);
break;
case '-':
printf("%d - %d = %d",num1, num2, num1-num2);
break;
case '*':
printf("%d * %d = %d",num1, num2, num1*num2);
break;
case '/':
printf("%d / %d = %d",num1, num2, num1/num2);
break;
case '%':
printf("%d %% %d = %d",num1, num2, num1%num2);
break;
default:
printf("Operator is not correct");
break;
}
printf("\n\n");
system ("pause");
}
goto
语句的优缺点的讨论。 - Jonathan Lefflerscanf
的返回值,以避免未定义的行为和在 EOF 上无限循环。 - chqrlieINT_MIN / -1
将产生异常并使您的程序崩溃。尝试输入-2147483648
和-1
。 - chqrlie