C语言问题,大家帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:51:31
本人刚学C语言不久,老师布置了一道题目,是说编程实现对键盘输入两个数的四则运算,我编了一个程序,能够编译成功,但总是得到一个错误的答案,不知错哪了,大家帮我看看啊,多谢!
#include <stdio.h>
void main()
{int a,b,c;
char d;
scanf("%d%d%c",a,b,d);
switch(d)
{case '+': c=a+b;
case '-': c=a-b;
case '*': c=a*b;
case '/': c=a/b;
}
printf("%d\n",c);
}
我已经把改成了scanf("%d%d%c",&a,&b,&d);
但是不管怎样得到的答案还总是907,怎么回事啊?
另外,我输入时是用类似"5 6 +"这种格式输入的,是不是输入格式有误呢?
我加了break,default还是不行啊!

#include <stdio.h>
void main()
{int a,b,c;
char d;
scanf("%d %d %c",&a,&b,&d);
switch(d)
{case '+': c=a+b; break;
case '-': c=a-b; break;
case '*': c=a*b; break;
case '/': c=a/b; break;
}
printf("%d\n",c);
}
注意在输入的时候用空格把各符号隔开!没问题了

我查看以下资料 出错的原因 case: 整型常量表达式
可以这样设计以下 switch(d-'0')
case '+'-'0':
case '-'-'0':

#include<stdio.h>
#include<math.h>
viod main()
{int a,b,c;
char d;
scanf("%d,%d,%c",&a,&b,&d);
switch(d)
{case'+':printf("c=a+b");break;
case'-':printf("c=a-b");break;
case'*':printf("c=a*b");break;
case'/';printf("c=a/b");break;
}
printf("%d\n",c);
}
以上程序的编译和连接都没问题,希望你能参考一下.

在每个case 语句后加个 break;