电子科大C语言实验10.doc_第1页
电子科大C语言实验10.doc_第2页
电子科大C语言实验10.doc_第3页
电子科大C语言实验10.doc_第4页
电子科大C语言实验10.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include#includetypedef structdouble * mat;int row;int col;Matrix;Matrix max;int main()void InitialMatrix(Matrix *T, int row,int col);/只分配空间不初始化;void InitialMatrixZero(Matrix *T,int row, int col);/初始化为0void InitialMatrixRand(Matrix *T,int row, int col);/初始化为50以内随机正整数void InputMatrix(Matrix *T);/键盘输入矩阵void DestroyMatrix(Matrix *T);/ 释放矩阵空间void PrintfMatrix(Matrix *T);/矩阵输出int AddMatrix(Matrix *A,Matrix *B,Matrix *C); / 矩阵加int MinusMatrix(Matrix *A,Matrix *B,Matrix *C); / 矩阵减int MultiMatrix(Matrix *A,Matrix *B,Matrix *C); /矩阵乘法double MeanMatrix(Matrix *T); /矩阵元素均值int SubMatrix(Matrix *T1,Matrix *T2,int BeginRow,int BeginCol,int EndRow,int EndCol); /求T1的子矩阵T2;srand(unsigned) time(NULL);/用时间做种int n;printf( 矩阵函数测试,请选择功能,输入对应的数字:n);printf(*n);printf( 1:输入一个矩阵,求矩阵均值;n);printf( 2:产生一个随机数矩阵,求矩阵均值;n);printf( 3:输入两个个矩阵,求矩阵和;n);printf( 4:输入两个个矩阵,求矩阵差;n);printf( 5:输入两个个矩阵,求矩阵积;n);printf( 6:产生两个个随机数矩阵,求矩阵和;n);printf( 7:产生两个个随机数矩阵,求矩阵差;n);printf( 8:产生两个个随机数矩阵,求矩阵积;n);printf( 9:求矩阵的子阵,如矩阵的2-4行,1-3列的子阵;n);printf( 0:结束!n);scanf(%d,&n);if(n=0)exit(0);Matrix m,p,q;printf(输入矩阵的行数n);scanf(%d,&m.row);printf(输入矩阵的列数n);scanf(%d,&m.col);InitialMatrix(&m,m.row,m.col);/分配内存空间InitialMatrixZero(&m,m.row,m.col);/初始化为0if(n2&nmat=(double*)malloc(row*col)*sizeof(double*);/为指针数组分配内存for(i=0;irow;i+)T-mati=(double*)malloc(T-col*sizeof(double);/为数组中的数分配内存void InitialMatrixZero(Matrix *T,int row, int col)/初始化为0int i,j;for(i=0;irow;i+)for(j=0;jmatij=0;void InitialMatrixRand(Matrix *T,int row, int col)/初始化为50以内随机正整数int i,j;for(i=0;irow;i+)for(j=0;jmatij=rand()%51;/调用rand函数的随机数printf(%7.2f,T-matij);printf(n);void InputMatrix(Matrix *T)/键盘输入矩阵int i,j;for(i=0;irow;i+)for(j=0;jcol;j+)scanf(%lf,&T-matij);void DestroyMatrix(Matrix *T)/ 释放矩阵空间int i;for(i=0;irow;i+)free(T-mati);free(T-mat);void PrintfMatrix(Matrix *T)/矩阵输出int i,j;for(i=0;irow;i+)for(j=0;jcol;j+)printf(%7.2f ,T-matij);printf(n);/输出完一行之后换行int AddMatrix(Matrix *A,Matrix *B,Matrix *C)/ 矩阵加法int i,j;for(i=0;irow;i+)for(j=0;jcol;j+)C-matij=A-matij+B-matij;return 0;int MinusMatrix(Matrix *A,Matrix *B,Matrix *C) / 矩阵减法int i,j;for(i=0;irow;i+)for(j=0;jcol;j+)C-matij=(A-matij)-(B-matij);return 0;int MultiMatrix(Matrix *A,Matrix *B,Matrix *C) /矩阵乘法int i,j,k;for(i=0;irow;i+)for(j=0;jcol;j+)for(k=0;kcol;k+)C-matij=(C-matij)+(A-matik)*(B-matkj);return 0;double MeanMatrix(Matrix *T) /矩阵元素均值int i,j;double sum=0.0,ave;for(i=0;irow;i+)for(j=0;jcol;j+)sum=sum+T-matij;ave=sum/(T-row*T-col);return ave;int SubMatrix(Matrix *T1,Matrix *T2,int BeginRow,int BeginC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论