VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > c#编程 >
  • 用C#描述矩形相乘

现在我们来学习一下以C#语言方式来描述一个矩形相乘的实例,首先这里创建一下名为MatrixMultiply类,接下来在主方法内声明a、b、c、d四个变量,然后,提示,请输入矩阵A的行数,并将矩阵A的行数和列数存储到变量a和b中;并声明一个数组将a和b作为元素存储到数组MatrixA中,代码如下:

        int a,b,c,d;
        Console.WriteLine ("该程序将求出两个矩阵的积:");
        Console.WriteLine ("请指定矩阵A的行数:");
        a=int.Parse (Console.ReadLine ());
        Console.WriteLine ("请指定矩阵A的列数:");
        b=int.Parse (Console.ReadLine ());
        int[,] MatrixA=new int [a,b];

接下来,通过for循环将矩阵中第一个点的值存到数组中的相应元素内

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

接下来,指定矩阵的相关内容

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

全套代码如下

using System;

public class MatrixMultiply
{
    public static void Main()
    { 
        int a,b,c,d;
        Console.WriteLine ("该程序将求出两个矩阵的积:");
        Console.WriteLine ("请指定矩阵A的行数:");
        a=int.Parse (Console.ReadLine ());
        Console.WriteLine ("请指定矩阵A的列数:");
        b=int.Parse (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=int.Parse (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[,] MatrixX,     int rowCount, int columnCount)
    {
        for(int i = 0; i < rowCount; i++)
        { 
            for(int j = 0; j < columnCount; j++)
            {
                Console.Write(MatrixX[i,j] + "\t");
            }
            Console.WriteLine();
        }
    }
}    


相关教程