C语言switch问题

#include<stdio.h>
#include<stdlib.h>
#include
int main ()
{
int a ,b ,sum;
char fuhao;
while(1)
{
printf("请输入表达式:");
scanf("%d%c%d",&a,&fuhao,&b);
switch(fuhao)
{
case '+':sum=a+b ;break;
case '-':sum=a-b ;break;
case '':sum=ab ;break;
case '/':sum=a/b ;break;
default:printf("error!\n");
}
printf("结果是:%d\n",&sum);
system("print");
}
}

img

不是switch的问题,是scanf的问题
你在scanf后面直接写个print,打印出a和b的值来,应该是没有正确赋值

printf("结果是:%d\n", &sum);改成 printf("结果是:%d\n", sum);

建议你对照着基础书籍编写,先模仿,错误都很基础

  1. case '':sum=ab ;break; 哪有ab的说法? 只有ab, 而且你的case里面没有
  2. printf("结果是:%d\n",&sum); 输出时不要&, 不然输出的是该变量的地址

暂停用 system("pause")
printf("结果是:%d\n",&sum); sum前多了&,输出的是sum的地址。