kid_0203 2015-11-29 09:10 采纳率: 50%
浏览 1463
已采纳

c语言一个关于scanf的问题

代码一
scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/
scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/
/*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/
scanf("%c",&a);

请问代码一中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户

代码二
#include
int main()
{int x,y;
scanf("%d",&x);
scanf("%d",&y);
printf("%d%d",x,y);
return 0;
}

代码二中 如果输入:s 1
为什么两个出来都是乱码?1难道没有被x或者接受吗?

  • 写回答

5条回答 默认 最新

  • threenewbee 2015-11-29 09:14
    关注

    被a接收?哪里来的a,如果输入s,那么y在此之前是多少就是多少。

    为什么两个出来都是乱码
    因为x y都没有被接收。而x y又没有初始化。所以是随机的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?