作业帮 > 综合 > 作业

C语言编程:编写一个函数求两个矩阵的差

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 18:02:18
C语言编程:编写一个函数求两个矩阵的差
函数功能
对两个矩阵求差.
被操作的矩阵、矩阵的行数、矩阵的列数和被写入的地址以函数参数形式传入.
函数原型
int function(double* p,int p_r,int p_c,double* q,int q_r,int q_c,double* re);
参数说明
p为指向第一个矩阵的指针变量,矩阵中的元素个数不超过1024;
p_r 为p指向的矩阵的行数;
p_c 为p指向的矩阵的列数;
q为指向第二个矩阵的指针变量,矩阵中的元素个数不超过1024;
q_r为q指向的矩阵的行数;
q_c 为q指向的矩阵的列数;
re是被写入的地址,即将两个矩阵的差的首地址写入re中.
返回值及意义
0 操作成功;
1 p、q为空或指向的矩阵之间不能求差(行数列数不等时),此时re为NULL;
2 p、q指向的矩阵元素个数超过限制,此时re也为NULL.
int function(double **p, int p_r,int p_c, double **q,int q_r, int q_c, double **re) {
int i,j;
if(p == NULL || q == NULL || p_r != q_r || p_c != q_c) {
re = NULL;
return 1;
}
if(p_r * p_c > 1024) {
re = NULL;
return 2;
}
for(i = 0; i < p_r; ++i)
for(j = 0; j < p_c; ++j)
re[i][j] = p[i][j] - q[i][j];
return 0;
}
再问: 你好,题目中函数给的是针是一重指针啊,你定义的是二重指针啊
再答: int function(double *p, int p_r,int p_c, double *q,int q_r, int q_c, double *re) {
\x09int i,j;
\x09if(p == NULL || q == NULL || p_r != q_r || p_c != q_c) {
\x09\x09re = NULL;
\x09\x09return 1;
\x09}
\x09if(p_r * p_c > 1024) {
\x09\x09re = NULL;
\x09\x09return 2;
\x09}
\x09for(i = 0; i < p_r; ++i)
\x09\x09for(j = 0; j < p_c; ++j)
\x09\x09\x09re[p_r * i + j] = p[p_r * i + j] - q[p_r * i + j];
\x09return 0;
}