为什么这个代码先后循序反了??

代码:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d\n", &a);
    printf("hfhdfd\n");
    scanf("%d", &a);
    return 0;
}

运行后就会发现,必须连续输入两次,才会打印出内容。。、
为什么?????

是不是因为你scanf后面多了个回车

scanf("%d\n", &a);
->
scanf("%d", &a);

\n用在scanf中表示:读取并放弃连续的空格、tab、回车。不是表示等待换行符。
scanf(“%d\n")语句由于放弃了结束符回车,所以输入完整数后,再输入回车是不会返回的,而必须碰到字符、数字才会返回。

scanf,括号里面多了/n