矩阵求和c语言函数 c语言矩阵相乘函数

矩阵对角线上元素求和 C语言

#includestdio.h

成都创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为绥德企业提供专业的成都网站设计、网站建设,绥德网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

void main()

{

int i,j;

int temp,res1=0,res2=0;

for(i=0;i5;i++){

for(j=0;j5;j++){

scanf("%d",temp);

if(i == j){

res1 += temp;

}

if((i + j) ==4){

res2 += temp;

}

}

}

printf("%d %d\n",res1,res2);

}

C语言中怎么用指针实现两矩阵的相加

void MatrixAdd(int *a,int *b,int *result,int n)//a,b两个n阶矩阵相加,结果保存在矩阵result中(指针a,b,result分别用来接收三个二维数组的首地址)

int i;

for(i=0;in*n;i++)*(reslut+i)=*(a+i)+*(b+i);

}

C语言 矩阵相加C=A+B

#include stdio.h

main()

{

int a[3][4],b[3][4],c[3][4];

for(int i = 0;i 3;i++) //输入数组a

for(int j = 0;j 4;j++)

scanf("%d",a[i][j]);

for(int i = 0;i 3;i++) //输入数组b

for(int j = 0;j 4;j++)

scanf("%d",b[i][j]);

for(int i = 0;i 3;i++) //计算c

{

for(int j = 0;j 4;j++)

{

c[i][j] = a[i][j] + b[i][j];

printf("%d ",c[i][j]);

}

pringf("\n");

}

}

试试吧....

如何用C语言编程实现矩阵相加、相乘

矩阵相加会简单点,设a[2][3]和b[2][3],只要在相应的地方相加就行了,

for(i=0;i2;i++)

for(j=0;j3;j++)

c[i][j]=a[i][j]+b[i][j];

两矩阵相乘,

int a[][3]={1,2,3,4,5,6,7,8,9};//A为N×P矩阵,

//假设是3*3的矩阵

int b[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

//B为P×M矩阵,假设是3*5的矩阵

int c[3][5]={0};//结果矩阵3*5

for(int i=0;i3;i++)

for(int j=0;j5;j++)

for(int k=0;k3;k++)

c[i][j]+=a[i][k]*b[k][j];

数据结构c语言矩阵相加,用三元组做,高手帮忙改一下

错误比较多把~

for语句里面是分号

scanf("%..",..);

switch语句后面要接表达式,case后面是常量表达式,后面要接default

函数的定义后面不加分号 status createsmatrix(tsmatrix M); { int i;

剩下的自己找下吧

用C语言编写一个矩阵运算的程序,高分!

//矩阵三元组之矩阵相加 相乘

#include iostream

using namespace std;

typedef int Elemtype;

#define MAXSIZE 12500 //最大非零元素

typedef struct Triple

{

Elemtype value;

int row,col;

}Triple;

typedef struct TSMatrix

{

Triple data[MAXSIZE+1];

int mu,nu,tu;

}TSMatrix;

TSMatrix T;

void InputMatrix(TSMatrix T) //输入t个非零元素

{

cout"请输入稀疏矩阵的信息,(行,列,非零元素个数)"endl;

cinT.muT.nuT.tu;

int i;

cout"请输入非零元素的信息(行,列,值),提醒(下标从1开始)"endl;

for(i=1;i=T.tu;++i)

{

cinT.data[i].rowT.data[i].colT.data[i].value;

}

}

void Output(TSMatrix T)

{

cout"矩阵的三元组表示(ROW=)"T.mu" COL="T.nu"非零个数="T.tuendl;

int i;

for(i=1;i=T.tu;++i)

{

cout"ROW(行):"T.data[i].row" COL(列):"T.data[i].col" Value(值)"T.data[i].valueendl;

}

}

void TransposeSMatrix(TSMatrix M,TSMatrix T) //矩阵的转置

{

T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;

int i,j,k=1;

for(i=1;i=M.nu;++i)

{

for(j=1;j=M.tu;++j)

if(M.data[j].col==i)

{

T.data[k].row=i;

T.data[k].col=M.data[j].row;

T.data[k].value=M.data[j].value;

++k;

}

}

}

void AddMastrix(TSMatrix M,TSMatrix T,TSMatrix Q) //矩阵相加

{

int index_a,index_b,i=1,j=1,k=1;

Q.mu=M.mu; Q.nu=M.nu;

while (i=M.tuj=T.tu)

{

index_a=(M.data[i].row)*(M.data[i].col)+M.data[i].col;

index_b=(T.data[j].row)*(T.data[j].col)+T.data[j].col;

if(index_aindex_b)

{

Q.data[k]=M.data[i];

i++;

k++;

}

else if(index_aindex_b)

{

Q.data[k]=T.data[j];

j++;

k++;

}

else if(index_a==index_b)

{

if((M.data[i].value+T.data[j].value)!=0)

{

Q.data[k]=M.data[i];

Q.data[k].value=M.data[i].value+T.data[j].value;

k++;

}

++i;

++j;

}

}

//复制剩余元素

for(;i=M.tu;++i)

{

Q.data[k]=M.data[i];

k++;

}

for(;j=T.tu;++j)

Q.data[k++]=T.data[j];

Q.tu=k-1;

}

void Multiply(TSMatrix M,TSMatrix T,TSMatrix Q) //相乘

{

if(M.nu!=T.mu)

{

cerr"两矩阵相乘不合法"endl;

return ;

}

int *rowSize=new int[T.mu+1]; //存放每行非零元素的个数

int *rowStart=new int[T.mu+2]; //矩阵每行在三元组开始位置

int *temp=new int[T.nu+1]; //存放结果矩阵中每行的计算结果

int i,Current,k,ROWM,COLM,COLB;

for(i=1;i=T.mu;i++) rowSize[i]=0;

for(i=1;i=T.tu;++i) rowSize[T.data[i].row]++;

rowStart[1]=1;

for(i=2;i=T.mu+1;i++)

rowStart[i]=rowStart[i-1]+rowSize[i-1];

Current=1; k=1;

while (Current=M.tu)

{

ROWM=M.data[Current].row; //当前三元组数据中元素的行号

for(i=1;i=T.nu;++i) temp[i]=0;

while (Current=M.tuROWM==M.data[Current].row)

{

COLM=M.data[Current].col; //当前元素的列号,方便与T矩阵的行号相乘

for(i=rowStart[COLM];irowStart[COLM+1];i++) //对应T矩阵中每行的个数

{

COLB=T.data[i].col;

temp[COLB]+=(M.data[Current].value)*(T.data[i].value);

}

Current++;

}

for(i=1;i=T.nu;i++)

{

if(temp[i]!=0)

{

Q.data[k].row=ROWM;

Q.data[k].col=i;

Q.data[k].value=temp[i];

}

k++;

}

}

Q.mu=M.mu;Q.nu=T.nu;

Q.tu=k-1;

}

int main()

{

TSMatrix T,M,Q,S;

InputMatrix(M);

InputMatrix(T);

cout"两矩阵相乘"endl;

Multiply(M,T,Q);

Output(Q);

cout"两矩阵相加"endl;

AddMastrix(M,M,S);

Output(S);

system("pause");

return 0;

}


网页名称:矩阵求和c语言函数 c语言矩阵相乘函数
本文网址:http://ybzwz.com/article/hpsjhp.html