第八周项目三 对称矩阵压缩存储的实现与应用(1)
2017-10-30 20:47
387 查看
/* 文件名称:对称矩阵压缩存储的实现与应用(1) 作 者:胡德杰 完成日期:2017年10月30号 版 本 号:v1.1.20 */ #include <stdio.h> #include <malloc.h> #define N 4 void Init(int *&b) //初始化 { b=(int*)malloc(sizeof(int)*(N*(N+1)/2)); } int Value(int b[],int i,int j) ////返回存储在b[M]中,对应二维数组A[i][j]的值 { if (i>=j) return b[(i*(i+1))/2+j]; else return b[(j*(j+1))/2+i]; } void Assign(int b[],int e,int i,int j) ////将e赋值给对应二维数组元素A[i][j],要存储到b[]中 { if (i>=j) b[(i*(i+1))/2+j] = e; else b[(j*(j+1))/2+i] = e; return; } void Disp(int b[]) //输出压缩存储在b中的对称矩阵 { int i,j; for (i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",Value(b,i,j)); printf("\n"); } } //销毁存储空间 void Destroy(int b[]) { free(b); } int main() { int *b1; //指向整型的指针,待初始化 int i, j; int v; Init(b1); printf("请输入对称矩阵(只需要输入下三角部分即可)\n"); for(i=0;i<N;i++) { printf("输入第%d行的%d个数据元素: ", i+1, i+1); for(j=0; j<=i; j++) { scanf("%d", &v); Assign(b1, v, i, j); } } Disp(b1); Destroy(b1); return 0; }
知识点总结:矩阵的代码的实现。
学习心得:已经看了好长时间了,忘得差不多了,所以这个博客花了好长时间。
相关文章推荐
- 第八周 【项目7 - 对称矩阵压缩存储的实现与应用】
- 第八周 【项目3 - 对称矩阵压缩存储的实现与应用(3)】
- 第八周(2) 项目2.1 - 对称矩阵压缩存储的实现与应用
- 第八周 【项目3 - 对称矩阵压缩存储的实现与应用(1)】
- 第八周项目3对称矩阵压缩存储的实现与应用(1)
- 第八周【项目2 - 对称矩阵压缩存储的实现与应用】
- 第八周项目3-对称矩阵压缩存储的实现与应用
- 第八周项目三 对称矩阵压缩存储的实现与应用(1)
- 第八周项目2-对称矩阵压缩存储的实现与应用-
- 第八周项目三__对称矩阵压缩存储的实现与应用
- 第八周【项目2 - 对称矩阵压缩存储的实现与应用】 (1)
- 第八周项目三 对称矩阵压缩存储的实现与应用(2)
- 第八周(2) 项目2.2 - 对称矩阵压缩存储的实现与应用
- 第八周 【项目3 - - 对称矩阵压缩存储的实现与应用】
- 第八周 项目三 — 对称矩阵压缩存储的实现与应用 (1)
- 第八周项目3对称矩阵压缩存储的实现与应用(3)
- 第八周项目3对称矩阵压缩存储的实现与应用(2)
- 第八周项目3--对称矩阵压缩存储的实现与应用(2)
- 第八周(2) 项目2.2 - 对称矩阵压缩存储的实现与应用
- 第八周 【项目3 - 对称矩阵压缩存储的实现与应用(2)】