为什么输出全是一样啊 我对照代码没发现哪里问题

img


为什么输出全是一样啊 我对照代码没发现哪里问题 可以看看哪里出错不

/*二维数组应用转置*/
#include <stdio.h>
#define N 2
#define    M 3
int main()
{
    int i, j, a[N][M], b[M][N];
    /*a数组键盘读取使之初始化*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            scanf("%d", &a[N][M]);
        }
    }
    /*a数组屏幕整齐输出*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            printf("%d\t", a[N][M]);
        }
        putchar('\n');
    }
    /*规律发现:关注下标 转置操作*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            b[M][N] = a[N][M];
        }
    }
    /*输出b转置 答案*/
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            printf("%d\t", b[M][N]);
        }
        printf("\n");
    }
}

已经私信发你了!数组的概念没理解清楚

修改如下,改动处见注释,供参考:

/*二维数组应用转置*/
#include <stdio.h>
#define N 2
#define    M 3
int main()
{
    int i, j, a[N][M], b[M][N];
    /*a数组键盘读取使之初始化*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            scanf("%d", &a[i][j]); // 修改
            //scanf("%d", &a[N][M]);
        }
    }
    /*a数组屏幕整齐输出*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            printf("%d\t", a[i][j]); // 修改
            //printf("%d\t", a[N][M]);
        }
        putchar('\n');
    }
    /*规律发现:关注下标 转置操作*/
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            b[j][i] = a[i][j];           // 修改
            // b[M][N] = a[N][M];
        }
    }
    /*输出b转置 答案*/
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            printf("%d\t", b[i][j]); // 修改
            //printf("%d\t", b[M][N]);
        }
        printf("\n");
    }
}

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

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