Удалить пробел в конце вывода в C

Следующий код предназначен для печати элементов матрицы в спиральном порядке. Программа работает отлично. Проблема, однако, заключается в том, что онлайн-компилятор, по которому я проверяю программу, не принимает конечные пробелы в конце вывода. Может ли кто-нибудь дать мне несколько идей относительно того, как я могу обойти последний пробел, добавляемый на выходе?

Для справки, мой код выглядит следующим образом (да, имена переменных ужасны. Я работаю над тем, чтобы изменить свою привычку ставить случайные имена переменных !!)

#include <stdio.h>
int main()
{
    int a[6][6];
    int i, k = 0, l = 0, m=3, n=3, j;
    scanf("%d %d",&m, &n);
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    }
    while (k < m && l < n)
    {
        for (i = l; i < n; ++i)
            printf("%d ", a[k][i]);
        k++;
        for (i = k; i < m; ++i)
            printf("%d ", a[i][n-1]);
        n--;
        if ( k < m)
        {
            for (i = n-1; i >= l; --i)
                printf("%d ", a[m-1][i]);
            m--;
        }
        if (l < n)
        {
            for (i = m-1; i >= k; --i)
                printf("%d ", a[i][l]);
            l++;
        }
    }
    return 0;
}

Входные данные:

1 2 3

4 5 6

7 8 9

Выход:

1 2 3 6 9 8 7 4 5{one extra space}

Есть ли способ решить эту проблему? (Также извините за ужасное форматирование. Первый вопрос по StackOverflow!)

Ответы на вопрос(6)

Ваш ответ на вопрос