问题描述:
编写矩阵运算程序(C语言编写)
a) 功能包括:矩阵加、矩阵减、矩阵乘、矩阵三角化
b) 实现方式1:函数的参数为:二维数组名、行数、列数
c) 实现方式2:函数的参数为:指向元素的指针、行数、列数(可选做)
100行左右哦,
1个回答
分类:
综合
2014-12-10
问题解答:
我来补答
矩阵三角化不知道是什么,其余的看下面代码:
bool addMat(int **mat1, int **mat2, int **matR, int row, int col)
{
for(int i = 0; i < row; i++)
{
for(int j = 0; j < col; j++)
{
*((int*)matR+i*col+j) = *((int*)mat1+i*col+j) + *((int*)mat2+i*col+j);
}
}
return true;
}
bool subMat(int **mat1, int **mat2, int **matR, int row, int col)
{
for(int i = 0; i < row; i++)
{
for(int j = 0; j < col; j++)
{
*((int*)matR+i*col+j) = *((int*)mat1+i*col+j) - *((int*)mat2+i*col+j);
}
}
return true;
}
bool mulMat(int **mat1, int row1, int col1, int **mat2, int row2, int col2, int **matR)
{
if(col1 != row2)
{
return false;
}
int temp1;
for(int i = 0; i < row1; i++)
{
for(int j = 0; j < col2; j++)
{
temp1 = 0;
for(int k = 0; k < col1; k++)
{
temp1 += *((int*)mat1+i*col1+k) * *((int*)mat2+k*col2+j);
}
*((int*)matR+i*col2+j) = temp1;
}
}
return true;
}
展开全文阅读