本人C#初学者,写了段打印矩阵代码,没有语法错误。但结果不正确。以下是本人写的代码:
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//声明一个2行3列的两维数组,用于存放矩阵A
int[,] matrixA=new int[2,3];
//声明一个3行4列的两维数组,用于存放矩阵B
// 初始化矩阵B
int[,] matrixB=new int[3,4]{{1,2,3,4},{5,6,7,8},{9,0,1,2}};
//声明一个2行4列的两维数组,用于存放矩阵A和矩阵B的乘积
int[,] matrixC=new int[2,4];
//初始化矩阵A
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
matrixA[i,j]=(i=1)*(j+2)+1;
}
}
//计算矩阵A和矩阵B的乘积
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
matrixC[i,j]=0;
//计算矩阵A和矩阵B的乘积,并把值存放在矩阵C中
for(int k=0;k<3;k++)
{
matrixC[i,j]+=matrixA[i,k] * matrixB[k,j];
}
}
}
//打印矩阵A
Console.WriteLine("**********矩阵A*********");
outputMatrix(matrixA,2,3);
//打印矩阵B
Console.WriteLine("*********矩阵B*********");
outputMatrix(matrixB,3,4);
//打印矩阵C
Console.WriteLine("**********矩阵C*********");
outputMatrix(matrixC,2,4);
}
//功能;输出矩阵
//参数:
//     matrixX   :待打印的矩阵
//    rowCount  :矩阵的行数
//     columnCount :矩阵的列数
private static void outputMatrix(int [,] matrixX,int rowCount,int columnCount)
{
//如果行列数错误,则不打印矩阵
if(matrixX.Length!=rowCount*columnCount)
{
Console.WriteLine("行列数错误");
return;
}
//打印矩阵
for(int i=0;i<rowCount;i++)
{
//逐一打印各行中的所有元素
for(int j=0;j<columnCount;j++)
{
Console.WriteLine (matrixX[i,j] + "\t");
}
//换行
    Console.WriteLine();
String stu=Console.ReadLine();
}
}
目标矩阵为A  3 4 5,5 7 9 矩阵C:68 30 42 54,121 52 73 94
运行得到矩阵A 3 0 0,0 4 5矩阵C: 3 6 9 12,65 24 33 42
自己找了很久没有找到原因,请热心者帮忙。谢谢