它是否指定以预定义的方式编写程序

时间:2013-11-20 07:01:49

标签: c scanf

Q1

int main() 
{
    char c;
    int y; 

    scanf("%c%d",&c,&y); 
    printf("%c\n%d\n",c,y); 

}

答案 - 如果我们输入值,则答案为z 1988 z 1988

但在另一个问题上 Q2

int main()
{
    int y; 
    char x; 
    scanf("%d",&y); 
    scanf("%c",&x); 
    printf("1 =%d\n%c\n",y,x); 
}

答案 - 如果我们输入这些值1988 1 =1988

仅显示整数值而非字符值。 我的问题是,显示的问题具有相同的模式,为什么一个显示字符值而另一个不显示

1 个答案:

答案 0 :(得分:1)

在你的

  

Q2

int main()
{
    int y; 
    char x; 
    scanf("%d",&y); 
    scanf("%c",&x); 
    printf("1 =%d\n%c\n",y,x); 
}

由于输入键击,第二个scanf读取换行符。

scanf之后加一个空格

int main() 
{ 
    int y; 
    char x; 
    scanf("%d",&y); 
    scanf(" %c",&x); 
           ^----Note space
    printf("1 =%d\n%c\n",y,x); 
}