稀疏矩阵的加法
稀疏矩阵的加法
#include "stdio.h"
#define m 6
#define n 8
#define max 50
// 稀疏矩阵存储在数组中
void creatematrix(int A[m][n],int B[50])
{
int i,j,k=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if (A[i][j]!=0)
{
B[k]=i;
k++;
B[k]=j;
k++;
B[k]=A[i][j];
k++;
}
B[k]=-1;
}
//两个稀疏矩阵存储到两个数组中后相加存储到另一个数组中
void matrixadd(int A[max],int B[max],int C[max])
{
int i=0,j=0,k=0;
while (A[i]!=-1&&B[j]!=-1)
{
if (A[i]==B[j])
{
if (A[i+1]==B[j+1])
{
C[k]=A[i];
C[k+1]=A[i+1];
C[k+2]=A[i+2]+B[j+2];
k=k+3;
i=i+3;
j=j+3;
}
else if (A[i+1]<B[j+1])
{
C[k]=A[i];
C[k+1]=A[i+1];
C[k+2]=A[i+2];
k=k+3;
i=i+3;
}
else
{
C[k]=B[j];
C[k+1]=B[j+1];
C[k+2]=B[j+2];
k=k+3;
j=j+3;
}
}
else if (A[i]<B[j])
{
C[k]=A[i];
C[k+1]=A[i+1];
C[k+2]=A[i+2];
k=k+3;
i=i+3;
}
else
{
C[k]=B[j];
C[k+1]=B[j+1];
C[k+2]=B[j+2];
k=k+3;
j=j+3;
}
}
if (A[i]==-1)
{
while (B[j]!=-1)
{
C[k]=B[j];
C[k+1]=B[j+1];
C[k+2]=B[j+2];
k=k+3;
j=j+3;
}
}
else
{
while(A[i]!=-1)
{
C[k]=A[i];
C[k+1]=A[i+1];
C[k+2]=A[i+2];
k=k+3;
i=i+3;
}
}
C[k]=-1;
}
//主函数
void main()
{
int E[m][n],F[m][n],A[max],B[max],C[max];
int i,j,k;
printf("输入稀疏矩阵E(%d,%d):\n",m,n);
for(i=0;i<m;i++) //输入稀疏矩阵E
{
for(j=0;j<n;j++)
{
scanf("%d",&E[i][j]);
}
}
printf("输入稀疏矩阵F(%d,%d):\n",m,n);
for(i=0;i<m;i++)//输入稀疏矩阵F
{
for(j=0;j<n;j++)
{
scanf("%d",&F[i][j]);
}
}
creatematrix(E,A);// E稀疏矩阵存储在数组A中
creatematrix(F,B);// F稀疏矩阵存储在数组B中
matrixadd(A,B,C);//相加
i=0;j=0;k=0;
printf("A数组内容如下:\n");
while(A[i]!=-1)
{
printf("%5d,%5d,%5d\n",A[i]+1,A[i+1]+1,A[i+2]);
i=i+3;
}
printf("B数组内容如下:\n");
while(B[j]!=-1)
{
printf("%5d,%5d,%5d\n",B[j]+
1,B[j+1]+1,B[j+2]);
j=j+3;
}
printf("C数组内容如下:\n");
while(C[k]!=-1)
{
printf("%5d,%5d,%5d\n",C[k]+1,C[k+1]+1,C[k+2]);
k=k+3;
}
}
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




