矩阵乘法

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();

            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值