两个5*5矩阵相乘程序设计

GM0805010304 2010-06-09 04:13:09
有高手帮帮忙,课程考试,但是本人愚笨不会。
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
z569362161 2010-06-09
  • 打赏
  • 举报
回复
typedef   struct{   float   *   data;int   col,row;}   array;   
array a,b,c;

/*c=a*b;*/
int cheng(array a,b,*c)
{ int i,j;
if(a.row!=b.col)
return (0);
else
{ c->col=a.col;
c->rol=b.row;
for(int i = 0; i < a.col; i++ )
for(int j = 0; j < a.row; j++ )
{ {[[ {{{{
*(c->data+i*sizeof(int)+j) = 0.0;
for(int k = 0; k < n; k++ )
*(c->data+i*sizeof(int)+j) += a[i*n+k]*b[k*l+j];

}
return(1);

}


}
liutengfeigo 2010-06-09
  • 打赏
  • 举报
回复

矩阵。。。
小小summer 2010-06-09
  • 打赏
  • 举报
回复
# include <iostream>
using namespace std;
void main()
{
int a[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},{5,6,7,8,9}};
int b[5][5]={{9,8,7,6,5},{8,7,6,5,4},{7,6,5,4,3},{6,5,4,3,2},{5,4,3,2,1}};
double c[5][5];
int i,j,k;

cout<<endl;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
c[i][j]=0;
}
}
for(k=0;k<5;k++)
{
for(i=0;i<5;++i)
{
for(j=0;j<5;++j)
{
c[k][i]=c[k][i]+a[k][j]*b[j][i];
}
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
cout<<c[i][j]<<"\t";
}
cout<<endl;
}
cout<<endl;
}
基本就是这样了
c[5][5]是用来存储结果的
a[5][5],b[5][5]是
AlanBruce 2010-06-09
  • 打赏
  • 举报
回复
http://www.maoyeah.com/display.asp?boardid=3&id=44

这是C++的
AlanBruce 2010-06-09
  • 打赏
  • 举报
回复

// 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");
}
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧