【时时三省】(C语言基础)习题2 scanf函数

山不在高,有仙则名。水不在深,有龙则灵。 ----优快云 时时三省

用下面的scanf函数输入数据,使a = 3,b = 7,x = 8.5,y = 71.82,c1 = 'A',c2 ='x'在键盘上应如何输入?

分析第一个 scanf 函数:

第一个 scanf 函数为 scanf("a=%db=%d",&a,&b); 。

它的格式要求输入的内容必须严格按照 a=数字b=数字 的形式,这样才能正确地将数字分别赋值给 a 和 b 。

要使 a = 3 , b = 7 ,那么在键盘上应输入 a=3b=7 。这里注意,中间没有空格,因为格式字符串中没有规定空格。如果输入了空格, scanf 函数会认为输入不符合格式要求,导致数据赋值错误。

分析第二个 scanf 函数:

第二个 scanf 函数为 scanf("%f%e",&x,&y); 。

它要求输入两个浮点数, %f 用于接收一般形式的浮点数, %e 用于接收指数形式的浮点数。

要使 x = 8.5 , y = 71.82 ,那么在键盘上接着输入 8.5 71.82 。这里两个数之间用空格隔开,因为格式字符串中两个格式控制符之间没有其他特殊字符,所以默认用空格分隔两个输入值。如果不隔开, scanf 函数会将连续输入的字符当作一个整体来解析,导致数据赋值错误。

分析第三个 scanf 函数:

第三个 scanf 函数为 scanf("%c%c",&c1,&c2); 。

它要求输入两个字符,并且会读取输入缓冲区中的字符。

要使 c1 = 'A' , c2 = 'a' ,在输入完前面的数字后,紧接着输入 Aa ,中间不要有空格。因为如果有空格,空格也会被 c1 读取,导致 c1 为空格, c2 为 A ,不符合要求。

所以,在键盘上应按如下方式输入

a=3b=7 8.5 71.82Aa

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时时三省

网络乞丐,在线乞讨。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值