📄 file42.c
字号:
#include<stdio.h>
#define MAXSIZE 12
typedef int Elemtype;
typedef struct{
int i,j;
Elemtype e;
}Triple;
typedef struct{
Triple data[MAXSIZE];
int mu,nu,tu;
}TSMatrix;
void main()
{int CreatSparseMatrix();
CreatSparseMatrix();
getch();
}
int CreatSparseMatrix()
{int FastTransposeSMatrix(TSMatrix);
TSMatrix M;
int k,a,b,flag;
M.mu=3;
M.nu=3;
scanf("%d",&M.tu);
if(M.tu<=0)
return 0;
for(k=0;k<M.tu;++k)
{scanf("%d%d",&M.data[k].i,&M.data[k].j);
if(M.data[k].i<0||M.data[k].i>=M.mu||M.data[k].j<0||M.data[k].j>=M.nu)
return 0;
scanf("%d",&M.data[k].e);
}
for(a=0;a<M.mu;a++)
{ for(b=0;b<M.nu;b++)
{flag=0;
for(k=0;k<M.tu;k++)
if(a==M.data[k].i&&b==M.data[k].j)
{ printf("%d ",M.data[k].e);
flag=1;
}
if(flag==0)
printf("0 ");
}
printf("\n");
}
printf("\n");
FastTransposeSMatrix(M);
return 1;
}
int FastTransposeSMatrix(TSMatrix M)
{TSMatrix T;
int num[3],cpot[3];
int col,t,p,q,a,b,k,flag;
T.mu=M.nu;
T.nu=M.mu;
T.tu=M.tu;
printf("-----------------------------------------\n");
if(T.tu){
for(col=0;col<M.nu;++col)
num[col]=0;
for(t=0;t<M.tu;++t)
++num[M.data[t].j];
cpot[0]=1;
for(col=1;col<M.nu;++col)
cpot[col]=cpot[col-1]+num[col-1];
for(p=0;p<M.tu;++p)
{ col=M.data[p].j;
q=cpot[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;
++cpot[col];
}
}
for(a=0;a<T.mu;a++)
{ for(b=0;b<T.nu;b++)
{flag=0;
for(k=0;k<T.tu;k++)
if(a==T.data[k].i&&b==T.data[k].j)
{ printf("%d ",T.data[k].e);
flag=1;
}
if(flag==0)
printf("0 ");
}
printf("\n");
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -