数据结构 矩阵的转置_第1页
数据结构 矩阵的转置_第2页
数据结构 矩阵的转置_第3页
数据结构 矩阵的转置_第4页
数据结构 矩阵的转置_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、#include<stdio.h>#include <conio.h>#define MAXSIZE 12500#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct int i,j; int e;Triple;typedef struct Triple dataMAXSIZE+1; int mu,nu,tu;TSMatrix;Status CreateSMatrix(TSMatrix &M)int w,m,n; wh

2、ile(1) printf("请输入行:"); scanf("%d",&M.mu); if(M.mu>0) break; if(M.mu<=0) printf("行不能为0n"); continue; while(1) printf("请输入列:"); scanf("%d",&M.nu); if(M.nu>0) break; if(M.nu<=0) printf("列不能为0n"); continue; printf("请输入

3、非零元素:"); scanf("%d",&M.tu); for(w=1;w<=M.tu;w+) printf("请输入元素所在行,列,元素值:n"); scanf("%d %d %d",&M.dataw.i,&M.dataw.j,&M.dataw.e); if(M.dataw.i<=0|M.dataw.j<=0|M.dataw.i>M.mu|M.dataw.j>M.nu) printf("输入错误1!n"); w-; for(m=1;m<

4、=w;m+) for(n=0;n<m;n+) if(M.datam.i<M.datan.i) printf("输入错误2!n"); w-; break;else if(M.datam.i=M.datan.i&&M.datam.j<M.datan.j)printf("输入错误3!n"); w-; break; else if(M.datam.i=M.datan.i&&M.datam.j=M.datan.j) printf("输入重复!n"); w-; break; return OK;S

5、tatus ShowSMatrix(TSMatrix M)int i,j,t=1;printf("矩阵为:n");for(i=1;i<=M.mu;i+)for(j=1;j<=M.nu;j+)if(M.datat.i=i&&M.datat.j=j)printf("%dt",M.datat.e);t+;else printf("0t");printf("n");return OK;Status TransposeSMatrix(TSMatrix M,TSMatrix &T) T.mu

6、=M.nu;T.nu=M.mu;T.tu=M.tu; int col; int p,q; if(T.tu) q=1; for (col=1;col<=M.nu;col+) for(p=1;p<=M.tu;p+) if(M.datap.j=col) T.dataq.i=M.datap.j; T.dataq.j=M.datap.i; T.dataq.e=M.datap.e; +q; printf("矩阵转置成功!n"); printf("转置后的"); ShowSMatrix(T); return OK;Status DestorySMatrix

7、(TSMatrix &M)M.mu=0;M.nu=0;M.tu=0;return OK;Status FastTransposeSMatrix(TSMatrix M, TSMatrix &T) int num100; int cpot100; int col,i,p,q; T.mu = M.nu ;T .nu = M.mu ; T.tu = M.tu ; if ( T.tu ) for(col = 1; col <=M.nu; +col) numcol =0; for( i = 1; i <=M.tu; +i) col =M.data i .j ; +num col

8、 ; cpot1 =1; for(col = 2; col <=M.nu; +col) cpotcol=cpotcol-1+num col-1 ; for( p =1; p <=M.tu ; +p ) col =M.datap.j; q=cpot col; T.dataq.i = M.datap. j; T.dataq.j = M.datap. i; T.dataq.e= M.datap. e; +cpotcol ; printf("矩阵快速转置成功!n"); printf("转置后的");ShowSMatrix(T);return OK;

9、int main() printf("*n"); printf("* 1.创建矩阵 *n"); printf("* 2.销毁矩阵 *n"); printf("* 3.输出矩阵 *n"); printf("* 4.转置矩阵 *n"); printf("* 5.快速转置矩阵 *n"); printf("* 6.转置矩阵对比 *n"); printf("* 7.输入一个负数退出*n"); printf("*n"); TSM

10、atrix M,T; int num; M.mu=0; do printf("Please input the operation you need:"); scanf("%d",&num); switch(num) case 1: CreateSMatrix(M); printf("矩阵初始化成功!n"); break;case 2:if(M.mu=0)printf("矩阵不存在!n");else DestorySMatrix(M); printf("矩阵已销毁!n"); break;case 3:if(M.mu=0)printf("矩阵不存在!n"); else ShowSMatrix(M); break;case 4:if(M.mu=0)printf(&

温馨提示

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

评论

0/150

提交评论