第九周项目二压缩存储的对称矩阵的运算
2015-10-29 19:56
309 查看
/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: main.cpp * 作者:巩凯强 * 完成日期:2015年10月29日 * 版本号:codeblocks * * 问题描述: 设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法。实现中请使用好前面设计的基本运算。 * 输入描述: 无 * 程序输出: 见运行结果 */ #include <stdio.h> #define N 4 #define M 10 int value(int a[],int i,int j) { if(i>=j) return a[(i*(i+1))/2+j]; else return a[(j*(j+1))/2+i]; } void madd(int a[],int b[],int c[] ) { int i,j; for(i=0;i<N;i++) for(j=0;j<N;j++) c[i][j]=value(a,i,j)+value(b,i,j); } void mult(int a[],int b[],int c[] ) { int i,j,k,s; for (i=0; i<N; i++) for (j=0; j<N; j++) { s=0; for (k=0; k<N; k++) s=s+value(a,i,k)*value(b,k,j); c[i][j]=s; } } void disp1(int a[]) { int i,j; for (i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",value(a,i,j)); printf("\n"); } } void disp2(int c[] ) { int i,j; for (i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",c[i][j]); printf("\n"); } } int main() { int a[M]= {1,2,3,4,5,6,7,8,9,10}; //a表示压缩存储的对称矩阵 int b[M]= {1,1,1,1,1,1,1,1,1,1}; int c1 ,c2 ; madd(a,b,c1); mult(a,b,c2); printf("a矩阵:\n"); disp1(a); printf("b矩阵:\n"); disp1(b); printf("a+b:\n"); disp2(c1); printf("a×b:\n"); disp2(c2); printf("\n"); return 0; }
运行结果:
知识点总结:
实现两个用压缩形式存储的对称矩阵A和B的加法和乘法
学习心得:
要熟练运用基本知识。
相关文章推荐
- JAVA练习之消费用户折扣卡模拟
- 小米开源文件管理器MiCodeFileExplorer-源码研究(8)-文件排序工具类FileSortHelper
- C++、C#、java算法学习日记03----插入排序
- 小米开源文件管理器MiCodeFileExplorer-源码研究(8)-文件排序工具类FileSortHelper
- Android中监听手机来电及状态
- java中的 equals + hashCode
- modbus协议
- 水深测量中定位精度的要求及设备选择
- 使用拉普拉斯算子
- Java随记-Collection和Itearator的使用
- java导出doc和docx
- 信号报告
- 输出内存中存储的二进制表示形式
- 1、分割回文串——回溯法
- 小米开源文件管理器MiCodeFileExplorer-源码研究(7)-Favorite收藏管理和SQLite数据库CRUD
- 小米开源文件管理器MiCodeFileExplorer-源码研究(7)-Favorite收藏管理和SQLite数据库CRUD
- 小米开源文件管理器MiCodeFileExplorer-源码研究(7)-Favorite收藏管理和SQLite数据库CRUD
- 用栈实现括号匹配
- 1041. Be Unique
- Matlab 如何截取视频中的每一帧图像