//本程序实现稀疏矩阵的创建与相加可在VS2008环境中运行 #include
#include #define MAXSIZE 100//非零元素个数最大值为 #define OK 1 typedef int ElemType;//元素值的类型定义为int型 typedef int Status; typedef struct{ int i,j;//该非零元素的行下标和列下标 ElemType e;//存储该非零元素的值 }Triple; typedef struct{ Triple data[MAXSIZE+1];//非零元三元组
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
,data[0]未用 int mu,nu,tu;//矩阵的行数、列数和非零元个数 }TSMatrix; Status CreatSMatrix(TSMatrix &M) {//创建稀疏矩阵M int i,m,n; ElemType e; printf("请输入矩阵的行数,列数和非零元素个数(可用空格隔开):"); scanf("%d",&M.mu);scanf("%d",&M.nu);scanf("%d",&M.tu); if(M.tu>MAXSIZE) {printf("非零元素个数太多请重新输入\n");exit(0);} M.data[0].i=0;//为下面比较顺序作准备 for(i=1;i<=M.tu;i++) { printf("请按行序输入第%d个非零元素所在行、列、元素的值:",i); scanf("%d",&m);scanf("%d",&n);scanf("%d",&e); if(m<1||m>M.mu||n<1||n>M.nu)//行或列超出范围 {printf("行或列超出范围请重新输入\n");exit(0);} if(mMAXSIZE)//非零元素个数太多 {printf("非零元素个数太多请重新输入\n");exit(0);} return OK; } Status PrintSMatrix(TSMatrix &M) {//输出稀疏矩阵M int i; printf("共%d行%d列%d个非零元素\n",M.mu,M.nu,M.tu); printf("行 列 元素值\n"); for(i=1;i<=M.tu;i++) printf("%d %d %d\n",M.data[i].i,M.data[i].j,M.data[i].e); return OK; } int main() { TSMatrix M,N,Q; printf("输入矩阵M\n"); CreatSMatrix(M);//创建矩阵M printf("输入矩阵N\n"); CreatSMatrix(N);//创建矩阵N AddSMatrix(M,N,Q);//M+N printf("输入矩阵M和N的和:\n"); PrintSMatrix(Q);//输出矩阵M+N的和矩阵Q return OK; }