代码一
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或者接受吗?
被a接收?哪里来的a,如果输入s,那么y在此之前是多少就是多少。
为什么两个出来都是乱码
因为x y都没有被接收。而x y又没有初始化。所以是随机的。
%d 是要求读入一个整数,如果输入字符就会出错。
%d 是要求读入一个整数,如果输入字符就会出错。
c是指的字符型 d指的整型 如果你要把你一个整型变量强制输出成字符型 那么就会得到符号 如果把字符型的强制输出成整型得到的是他对应的ascii码的序号
C语言%d是整数的输出形式