读书人

最近自学C遇到一个有关问题请大家帮

发布时间: 2012-04-16 16:20:04 作者: rapoo

最近自学C遇到一个问题,请大家帮忙看看,谢谢
就是这个简单的小程序:
//模拟计算器//
#include<stdio.h>
int main()
{
void action1(int x,int y);
void action2(int x,int y);
void action3(int x,int y);
void action4(int x,int y);
char a;
int c,d;
printf("请输入计算信息\n");
scanf("%d%c%d\n",&c,&a,&d);
switch(a)
{
case'+':action1(c,d);break;
case'-':action2(c,d);break;
case'/':action3(c,d);break;
case'*':action4(c,d);break;
default:printf("Error!\n");
}
return 0;


}
/*定义函数*/

void action1(int x,int y)
{
printf("x+y=%d\n",x+y);
}
//action2//
void action2(int x,int y)
{
printf("x-y=%d\n",x-y);
}
//action3//
void action3(int x,int y)
{
printf("x/y=%f\n",x/y);
}
//action4//
void action4(int x,int y)
{
printf("x*y=%d\n",x*y);

大家帮我看看,谢了!
}

[解决办法]
scanf("%d%c%d\n",&c,&a,&d);这一句里的\n必须去掉,写成scanf("%d%c%d",&c,&a,&d);

运行时的输入必须严格遵守scanf的规则,不得擅自添加任何多余的成分。

比如,计算3+2,你必须输入“3+2”然后回车。如果输入“3 + 2”的话就别指望能按你的愿望执行了。

读书人网 >C++

热点推荐