编程问题(C语言)变量i,j,k已定义为int型并有初值0,用语句“scanf(“%d,&i”);
答案:2 悬赏:50 手机版
解决时间 2021-04-04 01:51
- 提问者网友:戎马万世
- 2021-04-03 16:54
编程问题(C语言)变量i,j,k已定义为int型并有初值0,用语句“scanf(“%d,&i”);
最佳答案
- 五星知识达人网友:过活
- 2021-04-03 17:24
只有前一个scanf语句在起作用,后两个scanf语句都没有输入。当你输入12.3 4 5的时候,按回车,就开始执行scanf语句输入12.3 4 5遇到12.3后边的空格就停止了,4和5就落下了。直接执行后边的两个scanf语句,执行后边的scanf语句时没有输入为0。
如果输入为12.5回车4回车5回车就可以把三个数存入,也就可以输出三个数。追问可是第一次输入回车难道不会直接终止输入么一条scanf中数据可以以tab,空格,回车三种形式间隔,分成多条scanf时只有回车是有效间隔是这个意思么追答是的
如果输入为12.5回车4回车5回车就可以把三个数存入,也就可以输出三个数。追问可是第一次输入回车难道不会直接终止输入么一条scanf中数据可以以tab,空格,回车三种形式间隔,分成多条scanf时只有回车是有效间隔是这个意思么追答是的
全部回答
- 1楼网友:鸽屿
- 2021-04-03 17:37
输入缓冲区……类似于一个先进先出栈
执行给I赋值时,给i赋值12,但是12.5毕竟不是整数,那么,就在输入缓冲区产生了一个异常数据
当读取的时候,如果不把这个异常去掉,就不能再次输入信息,再次输入的信息都会卡在这个异常后面(比如火车卡在在山洞出口,虽然卡住的是第一节的一部分,但是我是不可能先让第二节第三节出来的,相让给第二节出来就必须先把第一节的残留给清除了……)
解决方法很简单,直接每次执行完一天输入语句后都再执行一次晴空缓冲区语句是最安全的方法~~当然,方法可能还有别的,你可以慢慢研究下~~追问可是如果语句是scanf(“%d%d%d”,&r,&j,&k)不就可以正常输出了么sorry,i打成r了
执行给I赋值时,给i赋值12,但是12.5毕竟不是整数,那么,就在输入缓冲区产生了一个异常数据
当读取的时候,如果不把这个异常去掉,就不能再次输入信息,再次输入的信息都会卡在这个异常后面(比如火车卡在在山洞出口,虽然卡住的是第一节的一部分,但是我是不可能先让第二节第三节出来的,相让给第二节出来就必须先把第一节的残留给清除了……)
解决方法很简单,直接每次执行完一天输入语句后都再执行一次晴空缓冲区语句是最安全的方法~~当然,方法可能还有别的,你可以慢慢研究下~~追问可是如果语句是scanf(“%d%d%d”,&r,&j,&k)不就可以正常输出了么sorry,i打成r了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯