首页 > 解决方案 > 用C写矩阵的元素

问题描述

A 矩阵占用了我所有的输入,但 B 矩阵占用了 2 或 3 个元素并崩溃。这次当我首先采用 B 元素时,它在第一个循环中崩溃了。

int main (void)
{
    unsigned int row1, row2, column1, column2;
    int A[ row1 ][ column1 ];
    int B[ row2 ][ column2 ];

    printf ("Enter rows and columns of A matrix: ");
    scanf ("%u%u", &row1, &column1);

    printf ("Enter rows and columns of B matrix: ");
    scanf ("%u%u", &row2, &column2);

    printf ("Enter elements of A matrix\n");

    for ( i = 0; i < row1; i++ )
    {
        for ( j = 0; j < column1; j++ )
        {
            scanf ("%d", &A[ i ][ j ]);
        }
    } 

    printf ("\n\nEnter elements of B matrix\n");

    for ( i = 0; i < row2; i++ )
    {
        for ( j = 0; j < column2; j++ )
        {
            scanf ("%d", &B[ i ][ j ]);
        }
    }
}

标签: cmatrix

解决方案


您必须将数组的声明移动A到第一个循环B之前,for第二个循环之后scanf()

这是为了允许使用有效值初始化变量row1row2column1和。column 2

使用未初始化的变量会导致未定义的行为


推荐阅读