无法完成for循环内通过scanf函数对二位整形数组赋值(应该是scanf出问题了,求修正)

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(){
    int a[5][5] = {};
    int m, n;
    int i,j,temp;
    for(i = 0;i < 5;i++)
    {
        for(j = 0;j < 5;j++)
        {
            scanf("%d",a[i][j]);
            printf("%d\n",&a[i][j]);
        }
        printf("\n");
    }


    printf("输入交换行m,n的值:\n");
    scanf("%d,%d",&m,&n);   //注意要交换的行数,与数组内m,n相差1
    m=m-1;
    n=n-1;    //不可使用 m--,n--,因为系统会认为没赋值便执行运算
    for(i=0;i<5;i++){
        temp = a[m][i];
        a[m][i] = a[n][i];
        a[n][i] = temp;
    }


    printf("输出:\n");
    for(i = 0;i < 5;i++)
    {
        for(j = 0;j < 5;j++)
        {
            printf("%d",a[i][j]);
        }
        printf("\n");
    }
}


给你改好了
确实是scanf

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(){
    int a[5][5] = {};
    int m, n;
    int i,j,temp;
    for(i = 0;i < 5;i++)
    {
        for(j = 0;j < 5;j++)
        {
            scanf("%d",&a[i][j]);  //这里取地址
            printf("%d\n",a[i][j]);   //这里不取地址
        }
        printf("\n");
    }
 
    printf("输入交换行m,n的值:\n");
    scanf("%d,%d",&m,&n);   //注意要交换的行数,与数组内m,n相差1
    m=m-1;
    n=n-1;    //不可使用 m--,n--,因为系统会认为没赋值便执行运算
    for(i=0;i<5;i++){
        temp = a[m][i];
        a[m][i] = a[n][i];
        a[n][i] = temp;
    }
 
 
    printf("输出:\n");
    for(i = 0;i < 5;i++)
    {
        for(j = 0;j < 5;j++)
        {
            printf("%d",a[i][j]);
        }
        printf("\n");
    }
}

img