C语言看下这道二维数组题:矩阵a和矩阵b的乘积得矩阵c

img

下面是我写的源程序代码:
#include<stdio.h> 
void main() 
{
    int a[3][3]={{2,0,1},{1,1,2},{0,1,0}};     /*定义数组并初始化*/
    int b[3][3]={{1,1,2},{2,1,1},{1,1,0}};
    int i,j,k;
    printf("数列a:\n");                        /*输出a矩阵的元素*/
    for(i=0;i<3;i++)
    {    for(j=0;j<3;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
    printf("\n数列b:\n");                      /*输出b矩阵的元素*/
    for(i=0;i<3;i++)
    {    for(j=0;j<3;j++)
            printf("%5d",b[i][j]);
        printf("\n");
    }
    printf("\n数列c:\n");                      /*计算出c矩阵并输出c矩阵的元素*/
    for(i=0;i<3;i++)
    {   for(j=0;i<3;j++)
       {    c[i][j]=0;
    for(k=0;k<3;k++)
        c[i][j]=c[i][j]+a[i][k]*b[k][j];
    printf("%5d",c[i][j]);
    } 
    printf("\n");
    }
}  
运行程序报错了,想问一下代码哪出问题了啊,帮个忙标注一下

修改如下,供参考:

#include<stdio.h>
void main()
{
    int a[3][3]={{2,0,1},{1,1,2},{0,1,0}};     /*定义数组并初始化*/
    int b[3][3]={{1,1,2},{2,1,1},{1,1,0}};
    int c[3][3]={0};                          //数组c[][]未定义及初始化
    int i,j,k;
    printf("数列a:\n");                        /*输出a矩阵的元素*/
    for(i=0;i<3;i++)
    {    for(j=0;j<3;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
    printf("\n数列b:\n");                      /*输出b矩阵的元素*/
    for(i=0;i<3;i++)
    {    for(j=0;j<3;j++)
            printf("%5d",b[i][j]);
        printf("\n");
    }
    printf("\n数列c:\n");                      /*计算出c矩阵并输出c矩阵的元素*/
    for(i=0;i<3;i++)
    {   for(j=0;j<3;j++)     //for(j=0;i<3;j++)修改
       {    //c[i][j]=0;
            for(k=0;k<3;k++)
               c[i][j]=c[i][j]+a[i][k]*b[k][j];
            printf("%5d",c[i][j]);
       }
       printf("\n");
    }
}