为什么在循环中写入时在循环后打印

why dose it print after the loop while it was written in a loop

int main(){
    int m, k, a, b;
    scanf_s("%d%d%d", &n, &m, &k);
    for (int i = 0; i < k; i++){
        fill(visit, visit + 1010, false);
        scanf_s("%d", &a);
        int cnt = 0;
        visit[a] = true;
        for (int j = 1; j <= n; j++){
            if (visit[j] == false){
                dfs(j);
                cnt++;
            }
        }
        printf("%d\n", cnt - 1); 
  }
    return 0;
}

为什么我给它一个整数时它会在扫描完所有数字后打印而不是每次打印{count-1}

因为scanf_s("%d",&a) 识别到一个"Enter"键作为input.if的结尾我们输入一个整数,回车就会显示结果但是,如果我们使用 space 来分隔输入并最后按 "Enter"。整数将被一一处理。