winds' blog

有风的日子。。。

导航

« 时间过得真快啊标三开课了,今天可是忙里忙外 »

矩阵的相乘,C++

前二天,应朋友的要求,帮他写了个C++的矩阵相乘,说真的

我原来连矩阵是什么都不知道,因为我没学过线性代数。。

他给我讲了一下,就写了个!

// jz.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#define MaxX 100
#define MaxY 100
#define MaxZ 100

void main()
{
 int i,j,k,x,y,z,l;//x,y是矩形的行和列,y,z是B矩阵的行和列
 printf("输入A矩阵的行数和列数(用逗号分开):");
 scanf("%d,%d",&x,&y);
 printf("输入B矩阵的行数和列数(用逗号分开):");
 scanf("%d,%d",&l,&z);
 if(l!=y)
 {
  printf("这二个矩阵不能相乘\n");
  return;
 }
 double a[MaxX][MaxZ],b[MaxY][MaxZ];
 double c[MaxX][MaxY];
 double temp=0.0;
 for(i=0;i<x;i++)
 {
  for(j=0;j<y;j++)
  {
   printf("输入A矩阵的值a[%d][%d]:",i,j);
   scanf("%lf",&a[i][j]);
  }
 }
 printf("\n");
 for(i=0;i<y;i++)
 {
  for(j=0;j<z;j++)
  {
   printf("输入B矩阵的值a[%d][%d]:",i,j);
   scanf("%lf",&b[i][j]);
  }
 }
 for(i=0;i<x;i++)/*A矩阵的行数*/
 {
  for(j=0;j<z;j++)/*B矩阵的列数*/
  {
   for(k=0;k<y;k++)   
   {
    temp=temp+a[i][k]*b[k][j];
   }
   c[i][j]=temp;
   temp=0;
  }
 }
 printf("\n两矩阵相乘的值为:\n");
 for(i=0;i<2;i++)
 {
  for(j=0;j<2;j++)
  {
   printf("%8.2lf",c[i][j]);
  } 
  printf("\n");
 }
}

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Tags

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Devo Build 80108

Copyright 2007-2008 Winds' Blog. Some Rights Reserved.鄂ICP备07001315号