操作员不在switch语句中工作

操作员不在switch语句中工作,c,switch-statement,C,Switch Statement,这是我的代码,但在输入后,每次都会给出默认语句。请帮忙。我是C的初学者。 它没有给出结果 #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int a; int b; char op; printf ("Enter first number: "); scanf ("%d", & a ); printf (

这是我的代码,但在输入后,每次都会给出默认语句。请帮忙。我是C的初学者。 它没有给出结果

 #include <stdio.h>
 #include <stdlib.h>
 #include <conio.h>

int main()
{
    int a;
    int b;
    char op;
    printf ("Enter first number: ");
    scanf ("%d", & a );
    printf ("Enter second number: ");
    scanf ("%d", & b );
    printf ("Enter the operator: ");
    scanf ("%s", op );
    switch(op)
    {
         case '+' : 
                       printf("Sum is %d", a+b );
         break;
         case '-' : 
                       printf("Difference is %d", a-b );
         break;
         case '*' : 
                       printf("Product is %d", a*b );
         break;
         case '/' : 
                       printf("Quotient is %d", a/b );
         break;
         default : 
                       printf("Wrong operator used!");
         break;
    }
    return 0;
}
#包括
#包括
#包括
int main()
{
INTA;
int b;
char op;
printf(“输入第一个数字:”);
scanf(“%d”和“&a”);
printf(“输入第二个数字:”);
scanf(“%d”和“b”);
printf(“输入运算符:”);
scanf(“%s”,op);
开关(op)
{
格“+”:
printf(“总和为%d”,a+b);
打破
案例'-':
printf(“差额为%d”,a-b);
打破
案例“*”:
printf(“产品为%d”,a*b);
打破
案例“/”:
printf(“商为%d”,a/b);
打破
违约:
printf(“使用了错误的运算符!”);
打破
}
返回0;
}
这是:

scanf ("%s", op );
是未定义的行为,
op
char
,但是
%s
需要
char*
(如果您希望在那里实际存储一个不需要的字符串,则需要一个以上的
char

你的意思是:

scanf(" %c", &op); // Note the space before '%', this matters.

还要始终检查返回值,I/O可能会失败。

我想您的意思是
scanf(“%c”,&op),而不是
scanf(“%s”,op)。您的代码甚至可以在没有警告的情况下编译吗<代码>扫描频率(“%s”,op)
不正确,因为当scanf需要一个
char*
时,您正在传递一个
char
。也许您的意思是
scanf(“%c”和&op)。不工作…返回0作为值…现在甚至无法输入运算符请仔细阅读-每条注释和答案在
%c
之前都有空格。请看。欢迎来到堆栈溢出!您似乎忘记启用一组好的警告。对于GCC,我建议至少使用
-Wall-Wextra-Wwrite strings
;还考虑<代码> -WPDEANTIC- WARIX界限< /代码>以识别其他常见错误。不工作……使用SCANF(“%C”,和OP);它甚至不要求我输入运算符…我输入两个数字,然后按“回车”,它返回0I三次扫描(“%c”,op);。。。。。但不工作…它显示text.exe在我必须输入时停止工作operator@SameerYadav尝试复制粘贴到您的程序中的确切代码。thnx展开…我编写了“%c”而不是“%c”…thnx用于helping@SameerYadav请通过“接受”这个答案来表示你的感谢。有一个复选框。