Sal*_*han -1 c switch-statement
每当用户键入2个整数并从+, - ,*,/中选择任何内容时,程序运行switch语句.问题是switch语句使第一个整数为0并根据该结果给出结果.
假设2个整数是4和8.用户选择+.程序给出的结果如此0 + 8 = 8.其他选项同样如此.
这是代码:
#include <stdio.h>
int main() {
int x,y;
char choice;
printf("Enter the first Integer:\n");
scanf("%d",&x);
printf("Enter the second Integer:\n");
scanf("%d",&y);
printf("Choose the action you want to perform\n")
scanf("%s",&choice);
switch(choice) {
case '+':
printf("\n%d + %d = %d",x,y,x+y);
break;
case '-':
printf("\n%d - %d = %d",x,y,x-y);
break;
case '*':
printf("\n%d * %d = %d",x,y,x*y);
break;
case '/':
if(y==0) {
printf("Undefined value\n");
} else {
printf("\n%d / %d = %d",x,y,x/y);
}
break;
default:
printf("\n Enter something valid\n");
break;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在这个问题上需要你的帮助.
既然choice是char(不是字符串)那么:
scanf("%s",&choice);
Run Code Online (Sandbox Code Playgroud)
应该
scanf(" %c",&choice);
Run Code Online (Sandbox Code Playgroud)
注意前面的空格%c- 这对于从输入缓冲区中刷新任何空格字符很有用,例如来自前一个输入的换行符.
另请注意,如果您已启用编译器警告(例如gcc -Wall ...),则编译器会立即向您指出此错误.