永发信息网

C语言,scanf语句不知道为什么被跳过了

答案:4  悬赏:30  手机版
解决时间 2021-11-20 16:08
C语言,scanf语句不知道为什么被跳过了
最佳答案
因为我们在输入第一组的2个数时会输入“回车”,这个回车会被你第二个“scanf”函数捕获,你只要在第二个“scanf”语句前加一句“getchar();”就行了,代码如下:
#include "stdio.h"
int main(){
int a,b;
char Operator;
printf("please input two number:");
scanf("%d %d",&a,&b);
printf("please input Operater(+ or -):");
getchar();
scanf("%c",&Operator);
switch(Operator)
{
case '+':
printf("%d+%d=%d\n",a,b,a+b);break;
case '-':
printf("%d-%d=%d\n",a,b,a-b);break;
default :
printf("Input error\n");
}
return 0;
}
全部回答
#include"stdio.h"
int main()
{ int a,b;
char Operator;
printf("please input two number:");
scanf("%d %d",&a,&b);
getchar();//接受缓冲区回车!!!!!
printf("please input Operater(+ or -):");
scanf("%c",&Operator);
switch(Operator)
{case '+': printf("%d+%d=%d\n",a,b,a+b);break;
case '-': printf("%d-%d=%d\n",a,b,a-b);break;
default : printf("Input error\n");}return 0;}
把 scanf("%d %d",&a,&b); 改为

scanf("%d %d \n",&a,&b);

因为你多输入了一个回车,这个回车键会放在系统输入缓存中,被下一个 scanf 函数检测到
所以导致输入错误了
#include"stdio.h"
int main(){
 int a,b; 
 char Operator;
 printf("please input two number:");
 scanf("%d %d ",&a,&b);//已改不然operator会接收
 printf("please input Operater(+ or -):");
 scanf("%c",&Operator);
 switch(Operator)
 {case '+': printf("%d+%d=%d ",a,b,a+b);break;
 case '-': printf("%d-%d=%d ",a,b,a-b);
 break;default : printf("Input error ");
 }
 return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
青南小学地址好找么,我有些事要过去,
关于乡音的诗词
合肥滴滴快的公司的电话是多少
和名模睡一晚要多少钱
弹跳提到七十厘米需要多久
有人出钱让我办网银,办好卡k宝都给他,对我有
泡字多音字组词??
国家电网浙江省电力团校地址在什么地方,想过
男生那个长什么样
b级车里面,哪个最强
诱惑红最大紫外吸收波长是多少
有谁知道花肌粹这个牌子的化妆品好用不
中分发型加染银色多少钱
我想睡你但我更想每天早上醒了能有你在身边是
被男人打是什么滋味?
推荐资讯
为什么非洲7月风向是东南风,按照季节7
什么是电晕现象,有什么危害以及如何防治?
榆林镇派出所地址在什么地方,想过去办事,
大风车幼儿园(临县园)地址有知道的么?有点事
哈佛h7开过2万公里用不用换火花塞
周畅忆这个名字好吗?
昨天有一个陌生人给我发短信知道我姓名让我加
张晓东的工作经历
劳动者能否以公司未按照最低工资标准单方面解
凸窗和飘窗的区别
类似黑榜小说有哪些
进台球馆消费多少钱?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?