{int a,c; char b; scanf("%d%c%d",&a,&b,&c); printf("a=%d,b=%c,c=%d\n",a,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);
}
不用问了,我大概知道了,你是不是还没有来得及输入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);
}
展开全部
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询