#include<stdio.h>
int main()
{
double a=0, b=0;
int c;
char i;
printf("Input expression:");
scanf("%lf%c%lf",&a,&i,&b);
switch (i)
{
case '+':c=a+b; printf("%lf+%lf=%lf",a,b,c); break;
case '-':c=a-b; printf("%lf-%lf=%lf",a,b,c); break;
case '':c+ab; printf("%lf*%lf=%lf",a,b,c); break;
case '/':if (b==0)
{printf("Can not divid 0!\nExpression error!");
}
else c=a/b; printf("%lf/%lf=%lf",a,b,c); break;
default:printf("Expression error!"); break;
}
return 0;
}
int c;
改成double c;
case '':c+ab; printf("%lf*%lf=%lf",a,b,c); break;
这句也不对,改成这样:case '*':c = a * b; printf("%lf*%lf=%lf", a, b, c); break;
完整代码:
#include<stdio.h>
int main()
{
double a = 0, b = 0;
double c;
char i;
printf("Input expression:");
scanf("%lf%c%lf", &a, &i, &b);
switch (i)
{
case '+':c = a + b; printf("%lf+%lf=%lf", a, b, c); break;
case '-':c = a - b; printf("%lf-%lf=%lf", a, b, c); break;
case '*':c = a * b; printf("%lf*%lf=%lf", a, b, c); break;
case '/':if (b == 0)
{
printf("Can not divid 0!\nExpression error!");
}
else c = a / b; printf("%lf/%lf=%lf", a, b, c); break;
default:printf("Expression error!"); break;
}
return 0;
}
因为你的结果c写成int类型了;
#include<stdio.h>
int main()
{
double a=0, b=0;
double c;
char i;
printf("Input expression:");
scanf("%lf%c%lf",&a,&i,&b);
switch (i)
{
case '+':c=a+b; printf("%lf+%lf=%lf",a,b,c); break;
case '-':c=a-b; printf("%lf-%lf=%lf",a,b,c); break;
case '*':c=a*b; printf("%lf*%lf=%lf",a,b,c); break;
case '/':if (b==0)
{printf("Can not divid 0!\nExpression error!");
}
else c=a/b; printf("%lf/%lf=%lf",a,b,c); break;
default:printf("Expression error!"); break;
}
return 0;
}
你应该把C也设置为double 而不是int
#include<stdio.h>
int main()
{
double a=0, b=0;
double c;
char i;
printf("Input expression:");
scanf("%lf%c%lf",&a,&i,&b);
switch (i)
{
case '+':c=a+b; printf("%lf+%lf=%lf",a,b,c); break;
case '-':c=a-b; printf("%lf-%lf=%lf",a,b,c); break;
case '*':c=a*b; printf("%lf*%lf=%lf",a,b,c); break;
case '/':if (b==0)
{printf("Can not divid 0!\nExpression error!");
}
else c=a/b; printf("%lf/%lf=%lf",a,b,c); break;
default:printf("Expression error!"); break;
}
return 0;
}
case '':c+ab; printf("%lf*%lf=%lf",a,b,c); break;
题主你这里的语句写得有问题,你注意看一下,应该是:
case '*':c + a * b; printf("%lf*%lf=%lf", a, b, c); break;
还有就是你定义的变量c是int类型,你实际计算的是double类型,加法肯定是得不到数据的,你把c的类型改成double类型试试看。
double c ;
如果有用的话,望采纳,谢谢哦!Switch-case语句本身没太大问题,注意细节就好了,加油
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!