{int a,c; char b; scanf("%d%c%d",&a,&b,&c); printf("a=%d,b=%c,c=%d\n",a,b,c);

为什么答案是a=1,b=,c=2... 为什么答案是a=1,b= ,c=2 展开
 我来答
匿名用户
2011-12-05
展开全部
你的输入是什么样的?

不用问了,我大概知道了,你是不是还没有来得及输入c,屏幕上就直接输出了?
如果是的话,那么就是你输入a的值的时候,后面敲得那个回车被程序当做b的值给读入了(因为b是char,所以记录了回车的ACSII码值)

你可以这么改:
#include <stdio.h>
#include <stdlib.h>

void main()
{
int a,c;
char b;
scanf("%d %c %d",&a,&b,&c); //注意这里的%d %c %d之间有空格,所以你输入的时候直接输入“1(空格)2(空格)3(回车)”即可
printf("a=%d,b=%c,c=%d\n",a,b,c);
}
寸言心
2011-12-05 · TA获得超过228个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:134万
展开全部
b=2,此时这个'2' 是个字符了,而不是数字了
追问
答案是a=1,b= ,c=2,就是这样,我问的是为什么是这样。
追答
字符和数字不同同时输入,改成如下即可:#include
void main()

{
int a,c;
char b; scanf("%c",&b);
scanf("%d%d",&a,&c);
printf("a=%d,c=%d\n",a,c);
printf("b=%c\n",b);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式