与预期结果有所偏差,问题困惑

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, y, m;
    printf("Number 1:\n");
    scanf("%d\n", &i);
    printf("Number 2:\n");
    scanf("%d\n", &y);
    m = i * y;
    printf("%d", m);
    system("pause");
    return 0;
}

运行结果及报错内容

能够运行,就是需要输入俩个值按回车,Number2才出现
而且为什么输入Y值在输出Number2之前

我想要达到的结果

想知道为什么

scanf去掉换行就可以,因为它是格式化输入
scanf("%d", &i);
scanf("%d", &y);

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, y, m;
    printf("Number 1:\n");
    scanf("%d", &i);
    printf("Number 2:\n");
    scanf("%d", &y);
    m = i * y;
    printf("%d", m);
    system("pause");
    return 0;
}
 

这俩 \n去掉

img

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, y, m;
    printf("Number 1:\n");
    scanf("%d", &i);
    printf("Number 2:\n");
    scanf("%d", &y);
    m = i * y;
    printf("%d", m);
    system("pause");
    return 0;
}