它最后多了一个空格,怎么把他消除

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n,m,x,i,j=0;
scanf("%d%d",&n,&m);
if(n>=100&&n<=999&&m>=100&&m<=999&&n<=m)
{
for(i=n;i<=m;i++)
{
x=(i/100 )(i/100)(i/100)+(i/10%10)(i/10%10)(i/10%10)+(i%10)(i%10)(i%10);
if(x==i)
{
j=j+1;
printf("%d ",i);
}

}
if(j==0)
    printf("no");
}
else
if(n==0||m==0)
{
printf("\0");
}
else
{
    printf("no");
}

return 0;

}

img

已消除输出末尾空格

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n, m, x, i, j = 0; bool flag = false;
    scanf_s("%d%d", &n, &m);
    if (n >= 100 && n <= 999 && m >= 100 && m <= 999 && n <= m)
    {
        for (i = n; i <= m; i++)
        {
            x = (i / 100)*(i / 100)*(i / 100) + (i / 10 % 10)*(i / 10 % 10)*(i / 10 % 10) + (i % 10)*(i % 10)*(i % 10);
            if (x == i)
            {
                j = j + 1;
                if(flag == true)
                    printf(" %d", i);
                else
                {
                    printf("%d", i);
                    flag = true;
                }
            }
        }
        if (j == 0)
            printf("no");
    }
    else
        if (n == 0 || m == 0)
        {
            printf("\0");
        }
        else
        {
            printf("no");
        }

    return 0;
}

它最后多了一个空格,怎么把他消除?
具体是什么多了一个空格?