怎么在不输入行列数的情况下输入一个矩阵

img


如图,我卡在了第一步上,怎么在跟样例一样的情况下输入这个矩阵?能不能详细说说呀?

供参考:

//采用指向二维数组的行指针,实现一个n*n的整形矩阵转置。要求:不另外开辟新的数组。
#include<stdio.h>
#define N 20
int main()
{
    int n, a[N][N], i, j, (* p)[N], t;
    while (scanf("%d", &n) != EOF)
    {
        printf("请输入一个%d*%d的矩阵:\n", n, n);
        for (i = 0; i < n; i++)
            for (j = 0; j < n; j++)
                scanf("%d", &a[i][j]);
        p = &a[0];
        for (i = 0; i < n; i++){//转置
            for (j = 0; j < n; j++) {
                if (i != j && j > i) {
                    t = *(p[i] + j);
                    *(p[i] + j) = *(p[j] + i);
                    *(p[j] + i) = t;
                }
            }
        }
        printf("%d*%d矩阵转置为:\n", n, n);
        for (i = 0; i < n; i++) {
            for (j = 0; j < n; j++) {
                printf("%d ", *(p[i] + j));
            }
            printf("\n");
        } 
    }
}