public class MatrixMultiply
{
static void Main(string[] args)
{
int a, b, c, d;
Console.WriteLine("该程序将求出两个矩阵的积:");
Console.WriteLine("请指定矩阵A的行数:");
a = int.Parse(Console.ReadLine());
Console.WriteLine("请指定矩阵A的列数:");
b = Convert.ToInt32(Console.ReadLine());
int[,]MatrixA=new int[a,b];
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
Console.WriteLine("请输入矩阵A第{0}行第{1}列的值:",i+1,j+1);
MatrixA[i, j] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine("矩阵A输入完毕。");
Console.WriteLine("请指定B的行数:");
c = int.Parse(Console.ReadLine());
Console.WriteLine("请指定B的列数:");
d = Convert.ToInt32(Console.ReadLine());
int[,]MatrixB=new int[c,d];
for (int i = 0; i < c; i++)
{
for(int j=0;j<d;j++)
{
Console.WriteLine("请输入矩阵A第{0}行第{1}列的值:",i+1,j+1);
MatrixB[i, j] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine("矩阵B输入完毕");
Console.WriteLine("矩阵A为:");
outputMatrix(MatrixA,a,b);
Console.WriteLine("矩阵B为:");
outputMatrix(MatrixB,c,d);
if (b != c)
{
Console.WriteLine("矩阵A的列数与矩阵B的行数不相等,无法进行乘积运算!");
return;
}
else
{
Console.WriteLine("矩阵A与矩阵B的乘积为:");
}
int[,] MatrixC = new int[a, d];
for (int i = 0; i < a; i++)
{
for(int j=0;j<d;j++)
{
MatrixC[i,j]=0;
for(int k=0;k<b;k++)
{
MatrixC[i,j]+=MatrixA[i,k]*MatrixB[k,j];
}
}
}
outputMatrix(MatrixC,a,d);
}
private static void outputMatrix(int[,] Matrix, int rowCount, int columnCount)
{
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < columnCount; j++)
{
Console.Write(Matrix[i,j]+"\t");
}
Console.WriteLine();
}
}
}
矩阵乘法
最新推荐文章于 2024-06-28 08:35:53 发布