用visual studio编写c,完成一个矩阵时,每行后面多出来很多数字,不止如何解决?

用visual studio编写c,完成一个矩阵时,每行后面多出来很多数字,不止如何解决?

#include<stdio.h>
#include<conio.h>

void exchange(int a[5][5]);

int mn(int a[5][5], int m);

int nm(int b[5][5], int m);

void main()

 {

        int a[5][5], m, n;
      for (m = 0; m < 5; m++)
        if (m == 0)
        {
            a[m][0] = 1;
        }
        else
            a[m][0] = m * 5;    
    for (n = 1; n < 5; n++)
        for (m = 0; m < 5; m++)
            a[m][n] = a[m][0] * (n + 1);
    exchange(a);
    for (m = 0; m < 5; m++)
    {
        for (n = 0; n < 5; n++)
            printf("%4d", a[m][n]);
        printf("%d\n");

    }



    for (m = 0; m < 5; m++)
    {
        int t;
        t = mn(a, m);
        printf("第%d行的和是:%d\n", m + 1, t);
    }

    for (m = 0; m < 5; m++)
    {
        int t;
        t = nm(a, m);
        printf("第%d列的和是:%d\n", m + 1, t);
    }
}

    void exchange(int a[5][5])          
    {
        int n, m, k;
        for (m = 0; m < 5; m++)
            for (n = 0; n < 5; n++)
            {
                k = a[m][n];
                a[m][n] = a[n][m];
                a[n][m] = k;
            }
    }
    int mn(int a[5][5], int m)
    {
        int n, t = 0;
        for (n = 0; n < 5; n++)
            t = t + a[m][n];
        return(t);
    }
    int nm(int b[5][5], int m)
    {
        int n, t = 0;
        for (n = 0; n < 5; n++)
            t = t + b[n][m];
        return(t);
    }

图片说明

多打了“%d”,就会多输出一个数据,虽然是莫名其妙的数据
图片说明

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^