这一段代码有什么问题(语言-c++)

#include<stdio.h>
int main()
{
int a,b,i;
char n;
scanf("%d%c%d",&a,&c,&b);
if(n=='+'){
i=a+b;
printf("%d",i);
}else if(n=='-'){
i=a-b;
printf("%d",i);
}else if(n==''){
i=a
b;
printf("%d",i);
}else if(n=='/'&&b!=0){
i=a/b;
printf("%d",i);
}else if(n=='%'&&b!=0){
i=a%b;
printf("%d",i);
}else{
printf("ERROR");
}
}

给你改好了

#include<stdio.h>
int main()
{
    int a,b,i;
    char n;
    scanf("%d %c %d",&a,&n,&b);
    if(n=='+'){
        i=a+b;
        printf("%d",i);
    }
    else if(n=='-'){
        i=a-b;
        printf("%d",i);
    }
    else if(n=='*'){
        i=a*b;
        printf("%d",i);
    }
    else if(n=='/'&&b!=0){
        i=a/b;
        printf("%d",i);
    }
    else if(n=='%'&&b!=0){
        i=a%b;
        printf("%d",i);
    }
    else{
        printf("ERROR");
    }
}

运行结果:

img

scanf("%d%c%d",&a,&c,&b); 中的c改为n

i=a/b; 这里a,b都为int,值有可能是0。改为
printf("%f",1.0*a/b);

#include<stdio.h>
int main()
{
int a,b,i;
char n;
scanf("%d%c%d",&a,&n,&b);
if(n=='+'){
i=a+b;
printf("%d",i);
}else if(n=='-'){
i=a-b;
printf("%d",i);
}else if(n=='*'){
i=a*b;
printf("%d",i);
}else if(n=='/'&&b!=0){
i=a/b;
printf("%d",i);
}else if(n=='%'&&b!=0){
i=a%b;
printf("%d",i);
}else{
printf("ERROR");
}
}