scanf("i=%d,j=%d,k=%d",&i,&j,&k),这个语句为什么不对? 50

已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。A.sanf("%2d%2d... 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是 ______。
A.sanf("%2d %2d %2d",&i,&j,&k);

B.scanf("%d %d %d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k)

为什么答案是C呢,D为什么不对?
展开
 我来答
认真答却总被删BAIDU我凭什么同情你
2023-04-08 · TA获得超过442个赞
知道小有建树答主
回答量:1800
采纳率:79%
帮助的人:95.7万
展开全部
根据题目,您需要输入的格式是 "1,2,3",其中数字之间有逗号。所以,我们需要找到一个输入语句,它能正确解析这种格式。
A. scanf("%2d %2d %2d",&i,&j,&k); 这个选项使用空格分隔数字,不符合题目要求。
B. scanf("%d %d %d",&i,&j,&k); 同样,这个选项也使用空格分隔数字,不符合题目要求。
C. scanf("%d,%d,%d",&i,&j,&k); 这个选项使用逗号分隔数字,符合题目要求。
D. scanf("i=%d,j=%d,k=%d",&i,&j,&k); 这个选项要求输入格式为 "i=1,j=2,k=3",与题目要求不符。
因此,答案是 C。选项 C 使用逗号分隔数字,正确解析了题目中要求的输入格式。
追问
为什么D得输入格式为 "i=1,j=2,k=3"?
不是printf("i=%d,j=%d,k=%d",i,j,k);这样子就对吗?为什么scanf就不行了呢?为什么scanf要"i=1,j=2,k=3"这样子输入?
追答
正确答案是C,此时运行时录入1,2,3<回车>
如果使用D,则运行时录入i=1,j=2,k=3<回车>
scanf与printf其实使用的都是一种思想,就是将%d在输入或输出时替换成具体值。当使用D时,程序会放过“i=”这些字符,而专门去找%d
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式