#include <stdio.h>
#include <stdlib.h>
#define MAX 100
#define TRUE 1
#define FAULT 0
struct Triple
{
int i,j;
int e;
};
struct TSMatrix
{
struct Triple data[MAX+1];
int rpos[MAX+1];
int mv,nv,tv;
};
int CreateSMatrix(struct TSMatrix *M)
{
int i,m,n;
int e;
int k;
printf(" 请输入矩阵的行数:");
scanf("%d",&M->mv);
printf(" 请输入矩阵的列数:");
scanf("%d",&M->nv);
printf(" 请输入矩阵的非零元素个数:");
scanf("%d",&M->tv);
M->data[0].i=0;
for(i=1;i<=M->tv;i++)
{
do
{
printf(" 请按行序顺序输入第%d个非零元素所在的行(1~%d):",i,M->mv);
scanf("%d",&m);
printf(" 请按行序顺序输入第%d个非零元素所在的列(1~%d):",i,M->nv);
scanf("%d",&n);
printf(" 请按行序顺序输入第%d个非零元素的值:",i,M->tv);
scanf("%d",&e);
printf("\n");
k=0;
if(m<1||m>M->mv||n<1||n>M->nv)
k=1;
if(m<M->data[i-1].i||m==M->data[i-1].i&&n<=M->data[i-1].j)
k=1;
}while(k);
M->data[i].i=m;
M->data[i].j=n;
M->data[i].e=e;
}
return TRUE;
}
void DestroySMatrix(struct TSMatrix *M)
{
M->mv=0;
M->nv=0;
M->tv=0;