|
发表于 2019-12-13 11:14:03
|
显示全部楼层
你的程序之所以出错是因为变量y没有初始化,当输入除0的算式,变量y没有进行赋值,所以变量y的值是不确定的,这要看之前该存储空间中是什么内容了,在程序最后输出变量y就会出错。
实际上,除0的时候就不应该再输出answer。
此外switch中,最后一个case 是可以不用break的。
帮你修改了一下程序。- #include<stdio.h>
- int main()
- {
- int d1,d2;
- char x;
- float y=0.0;
- printf("请输入算式:");
- scanf("%d %c %d",&d1,&x,&d2);
- switch(x)
- {
- case '-':d2=-d2;
- case '+':y=(float)d1+d2;break;
- case '*':y=(float)d1*d2;break;
- case'/':
- if(d2==0)
- {
- printf("不能除0\n");
- }
- else
- {
- y=(float)d1/d2;
- }
- }
- if(x!='/'||d2!=0)
- printf("awnser=%.2f\n",y);
- return 0;
- }
复制代码 |
|