c语言函数矩阵加减法 c语言实现矩阵加法

请问如何计算矩阵的加减法(C程序)昨晚写c语言函数矩阵加减法的c语言函数矩阵加减法,运行调试已通过 。以后问问题要坚持久一点呀 。。。还不许c语言函数矩阵加减法我说话,我留句话是为c语言函数矩阵加减法了晚上好找到c语言函数矩阵加减法你的题目呀 。。。= 。=#
#includestdio.h
#includestdlib.h
main()
{
int *p1,*p2,*p3;
int i,n;
char ch;
printf("qing shu ru jie shu:");
scanf("%d",n);
p1=(int*)malloc(n*n*sizeof(int));
p2=(int*)malloc(n*n*sizeof(int));
p3=(int*)malloc(n*n*sizeof(int));
printf("qing shu ru ju zhen:\n");
for(i=0;in*n;i)
scanf("%d",p1 i);
while(scanf("\n%c",ch),ch!='#')
{
for(i=0;in*n;i)
scanf("%d",p2 i);
if(ch==' ')
{
for(i=0;in*n;i)
*(p3 i)=*(p1 i) *(p2 i);
}
if(ch=='-')
{
for(i=0;in*n;i)
*(p3 i)=*(p1 i)-*(p2 i);
}
p1=p3;
}
for(i=0;in*n;i)
{
printf("]",*(p3 i));
if(i%n==n-1)printf("\n");
}
free(p1);
free(p2);
free(p3);
getch();
}
C语言实现的矩阵加减乘法#includestdio.h
/*
m1和m2为两个相加的数组首元素地址,r和c为两个数组的行数和列数
m用于存放结果 。
调用该函数时,要求m为有足够存储单元、能容纳运算结果的数组首元素地址
*/
void add(int *m,int *m1,int *m2,int r,int c);
void sub(int *m,int *m1,int *m2,int r,int c);
void mult(int *m,int *m1,int *m2,int r,int p,int c);
void disp(int *m,int r,int c);
void main()
{
int a[3][4]={{2,4,6,8},{1,3,5,7},{11,33,44,22}};
int b[3][4]={{2,-4,6,-8},{-1,3,-5,7},{11,-33,-44,22}};
int c[4][3]={{2,4,6},{1,3,5},{1,0,3},{0,2,4}};
int d[3][4]={0};
int e[3][3]={0};
printf("\nA(3x4):\n");
disp(a[0],3,4);
printf("\nB(3x4):\n");
disp(b[0],3,4);
add(d[0],a[0],b[0],3,4);
printf("\nD(3x4)=A B:\n");
disp(d[0],3,4);
sub(d[0],a[0],b[0],3,4);
printf("\nD(3x4)=A-B:\n");
disp(d[0],3,4);
printf("\nA(3x4):\n");
disp(a[0],3,4);
printf("\nC(4x3):\n");
disp(c[0],4,3);
mult(e[0],a[0],c[0],3,4,3);
printf("\nE(3x3)=A*C:\n");
disp(e[0],3,3);
【c语言函数矩阵加减法 c语言实现矩阵加法】}
void add(int *m,int *m1,int *m2,int r,int c){
int i,j;
for(i=0; ir; i)
for(j=0; jc; j)
*(m i*c j) = *(m1 i*c j)*(m2 i*c j);
}
void sub(int *m,int *m1,int *m2,int r,int c){
int i,j;
for(i=0; ir; i)
for(j=0; jc; j)
*(m i*c j) = *(m1 i*c j) - *(m2 i*c j);
}
void mult(int *m,int *m1,int *m2,int r,int p,int c){
int i,j,k,t;
for(i=0; ir; i)
for(j=0; jc; j)
{
t=0;
for(k=0; kp; k)
t= *(m1 i*p k) * *(m2 k*c j);
*(m i*c j)=t;
}
}
void disp(int *m,int r,int c)
{
int i,j;
for(i=0; ir; i)
{
for(j=0; jc; j)
printf("m",*(m i*c j));
printf("\n");
}
}
用C语言编写程序(两个矩阵相加)用C语言编写程序(两个矩阵相加)代码如下c语言函数矩阵加减法:
/**
MatrixAddition.c
实现两个矩阵相加
*/
#includestdio.h
const int COLS=3;
void printMatirx(int *pArray,int rows,int cols);
void printMatirx2(int (*pArray)[COLS],int rows);
int main()
{
int A[3][4]={{15,10,9,12},
{18,14,8,7},
{16,13,6,11}};
printf("矩阵A=\n");
printMatirx(A,3,4);
int B[3][4]={{4,3,5,2},
{0,9,6,1},
{5,7,2,6}};
printf("矩阵B=\n");
printMatirx(B,3,4);
int C[3][4];
int i,j;
//矩阵相加:两个矩阵必须行数和列数一样才能相加c语言函数矩阵加减法 ,
//和矩阵的每个元素分别是两个矩阵对应的元素的和
printf("矩阵A 矩阵B=\n");
for(i=0;i3;i)//控制行
{
for(j=0;j4;j)
{
C[i][j]=A[i][j] B[i][j];
//printf("=",C[i][j]);//输出结果
}
//printf("\n");
}
int (*p)[COLS]=C;
printMatirx2(p,3);
/*结果应为:
19 13 14 14
18 23 148
21 208 17
*/
printf("矩阵C-矩阵A=\n");
for(i=0;i3;i)//控制行
{
for(j=0;j4;j)
{
printf("=",C[i][j]-A[i][j]);//输出结果
}
printf("\n");
}
/*结果应为:
4352
0961
5726
*/
//矩阵数乘:
int D[3][4];
printf("矩阵D:\n");
for(i=0;i3;i)//控制行
{
for(j=0;j4;j)
{
D[i][j]=1;
printf("%d\t", D[i][j]);//输出结果
}
printf("\n");
}
int mul;
printf("矩阵D数乘以:");
scanf("%d",mul);
printf("矩阵D数乘以%d=\n",mul);
for(i=0;i3;i)//控制行
{
for(j=0;j4;j)
{
D[i][j]=D[i][j]*mul;
printf("%d\t", D[i][j]);//输出结果
}
printf("\n");
}
return 0;
}
扩展资料:
C语言矩阵加减法函数:
void matrix_a(double **a_matrix, const double **b_matrix, const double **c_matrix,int krow, int kline, int ktrl)
////////////////////////////////////////////////////////////////////////////
//a_matrix=b_matrix c_matrix
//krow:行数
//kline:列数
//ktrl:大于0: 加法不大于0:减法
////////////////////////////////////////////////////////////////////////////
{
int k, k2;
for (k = 0; kkrow; k)
{
for(k2 = 0; k2kline; k2)
{
a_matrix[k][k2] = b_matrix[k][k2]
((ktrl0) ? c_matrix[k][k2] : -c_matrix[k][k2]);
}
}
}
参考资料:
百度百科-C语言
c语言函数矩阵加减法的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于c语言实现矩阵加法、c语言函数矩阵加减法的信息别忘了在本站进行查找喔 。

    推荐阅读