主题:无法得到相应的结果
dzcz88
[专家分:0] 发布于 2007-10-19 09:51:00
#include "stdio.h"
main()
{
int a,b; char n;
printf("请输入俩个数\n:");
scanf("%d%d",&a,&b);
switch('n')
{
case '+': n=a+b; break;
case '-': n=a-b; break;
deault: n=a*b;
}
printf("你输入的结果是\n",n);
scanf("%d",&n);
}
我想根据输入不同的用算符的到不同的结果.好象是逻辑错误.希望大哥门帮忙.
回复列表 (共6个回复)
沙发
happyboy2007 [专家分:3900] 发布于 2007-10-19 19:26:00
按照你的设计思想,switch中的测试表达式应该是字符型变量n啊。
另外,你的字符型变量n没有经过动态赋值。
#include "stdio.h"
main()
{
int a,b,c;
char n;
printf("请输入俩个数\n:");
scanf("%d%d",&a,&b);
printf("请输入运算符\n:");
scanf(" %c",&n);
switch(n)
{
case '+': c=a+b; break;
case '-': c=a-b; break;
deault: c=a*b;
}
printf("运算结果是%d\n。",c);
}
板凳
Tcb419 [专家分:160] 发布于 2007-10-19 19:49:00
#include "stdio.h"
main()
{
int a,k,b; char n;
printf("请输入俩个数\n:");
scanf("%d%d%c",&a,&b,&n);
switch('n')
{
case '+': k=a+b; break;
case '-': k=a-b; break;
deault: k=a*b;
}
printf("你输入的结果是\n",k);
这样可以,.主要是因为程序编译时运形得很快,把你在你输入完整形的a,b后所加的一个回车当成了字符型的n,所以运行结果总是a*b,
也因为这样,我的算法中输入数据时a和b间有空格,而b和n间没有!~也就是要这样输入:
a b+再回车
3 楼
Tcb419 [专家分:160] 发布于 2007-10-19 19:51:00
楼上的老哥,好象想你那样赋值不得耶!~
4 楼
Tcb419 [专家分:160] 发布于 2007-10-19 19:54:00
哦,得,不过赋值的时候还得象我那样赋才得哦!~
5 楼
wruru521 [专家分:30] 发布于 2007-10-20 18:11:00
你们都错了一个关键字,default
6 楼
Tcb419 [专家分:160] 发布于 2007-10-21 12:51:00
哦,哈,细心点好
我来回复