做暖暖视频网站有哪些,太原网站设计制作,提高,百度首页纯净版本题实现稀疏矩阵的求和运算。
函数接口定义#xff1a;
int add_mat(elem a[],int t1,elem b[],int t2, elem c[]);//求ab其中 t1 和 t2 表示稀疏矩阵a的长度和稀疏矩阵b的长度#xff0c;函数返回ab的长度。
裁判测试程序样例#xff1a;
#include stdio.h #d…本题实现稀疏矩阵的求和运算。
函数接口定义
int add_mat(elem a[],int t1,elem b[],int t2, elem c[]);//求ab其中 t1 和 t2 表示稀疏矩阵a的长度和稀疏矩阵b的长度函数返回ab的长度。
裁判测试程序样例
#include stdio.h #define M 10 //行
#define N 10 //列
typedef struct {
int row, col; //行号、列号
int val;
}elem;
void input(elem a[],int m);
void show_mat(elem a[],int n);
int add_mat(elem a[],int t1,elem b[],int t2, elem c[]);
void input(elem a[],int m) {
int i;
for(i0;im;i)
scanf(%d%d%d,a[i].row,a[i].col,a[i].val);
}
void show_mat(elem a[],int n)//输出 {
int i;
for(i0;in;i)
printf(%d %d %d\n,a[i].row,a[i].col,a[i].val); }
int main() { int t,m,n; elem a[M*N],b[N*M],c[N*M];
scanf(%d%d,m,n); input(a,m); input(b,n);
tadd_mat(a,m,b,n,c);//cab
show_mat(c,t); return 0; } /* 请在这里填写答案 */输入样例
第一行为矩阵行和列接下来为两个矩阵
3 2
0 0 1
0 1 3
2 1 2
0 1 -3
1 1 2输出样例
0 0 1
1 1 2
2 1 2
代码实现
int add_mat(elem a[],int t1,elem b[],int t2,elem c[])
{elem z;int s0; int flag1;for(int k0;kt1;k) {flag1;for(int p0;pt2;p) {if(a[k].rowb[p].rowa[k].colb[p].col){flag0;if(a[k].valb[p].val!0){c[s].rowa[k].row;c[s].cola[k].col;c[s].vala[k].valb[p].val;s;}}}if(flag){c[s].rowa[k].row;c[s].cola[k].col;c[s].vala[k].val;s;}}for(int k0;kt2;k) //kokoko {flag1;for(int y0;yt1;y){if(b[k].rowa[y].rowb[k].cola[y].col){flag0;continue;}}if(flag){c[s].rowb[k].row;c[s].colb[k].col;c[s].valb[k].val;s;}}for(int q0;qs;q) {for(int w1;ws;w){if(c[w-1].rowc[w].row){zc[w-1];c[w-1]c[w];c[w]z;}}}return s;
}