trans.c

来自「数据结构的一些头文件和例子包括了线性表」· C语言 代码 · 共 65 行

C
65
字号
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 125
typedef int ElemType ;
typedef struct{
	int i,j;
	ElemType e;
}Tripe;
typedef struct TSMatrix{
	Tripe data[MAXSIZE+1];
	int mu,nu,tu;
}TSMatrix;
void CreateTSMatrix(TSMatrix *M){
int i;
printf("\nplease input the rolval mu:=");
scanf("%d",&M->mu);
printf("\nplease input the colval nu:=");
scanf("%d",&M->nu);
printf("\nplease input the !zeroval tu:=");
scanf("%d",&M->tu);
for(i=1;i<=M->tu;){
	printf("i:=%d\n",i);
	printf("\nrow:=");
	scanf("%d",&M->data[i].i);
	printf("\ncol:=");
	scanf("%d",&M->data[i].j);
	printf("\nval:=");
	scanf("%d",&M->data[i].e);
	if(M->data[i].e){
		if(M->data[i].i>M->mu||M->data[i].j>M->nu)printf("incrroct input\n");
		else  i++;
	}
	else printf("incrroct input\n");
}
}
void Out(TSMatrix *M){
int i;
printf("TSMatrix mu:=%-5dnu:=%-5dtu:=%-5d\n",M->mu,M->nu,M->tu);  
	for(i=1;i<=M->tu;i++)
     printf("\n %-5d %-5d %-5d",M->data[i].i,M->data[i].j,M->data[i].e);
}

transpose(TSMatrix *M,TSMatrix *T)
{int q,p,col;
T->mu=M->nu;T->nu=M->mu;T->tu=M->tu;
if(T->tu)
{q=1;
for(col=1;col<=M->nu;++col)
    for(p=1;p<=M->tu;++p)
      if(M->data[p].j==col)
        {T->data[q].i=M->data[p].j;
         T->data[q].j=M->data[p].i;
         T->data[q].e=M->data[p].e;++q;
        }
}
}
void main(){
TSMatrix Ma,T;
CreateTSMatrix(&Ma);
Out(&Ma);
transpose(&Ma,&T);
Out(&T);
}
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?