超电磁炮御坂美琴本子:这个程序是在编一个15×15稀疏矩阵吗?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 14:57:17
/* 行逻辑链接稀疏矩阵的基本操作(8个) */
Status CreateSMatrix(RLSMatrix *M)
{ /* 创建稀疏矩阵M */
int i,j;
Triple T;
Status k;
printf("请输入矩阵的行数,列数,非零元素数:");
scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu);
if((*M).tu>MAX_SIZE||(*M).mu>MAX_RC)
return ERROR;
(*M).data[0].i=0; /* 为以下比较做准备 */
for(i=1;i<=(*M).tu;i++)
{
do
{
printf("请按行序顺序输入第%d个非零元素所在的行(1~%d),列(1~%d),元素值:",i,(*M).mu,(*M).nu);
scanf("%d,%d,%d",&T.i,&T.j,&T.e);
k=0;
if(T.i<1||T.i>(*M).mu||T.j<1||T.j>(*M).nu) /* 行、列超出范围 */
k=1;
if(T.i<(*M).data[i-1].i||T.i==(*M).data[i-1].i&&T.j<=(*M).data[i-1].j) /* 没有按顺序输入非零元素 */
k=1;
}while(k); /* 当输入有误,重新输入 */
(*M).data[i]=T;
}
for(i=1;i<=(*M).mu;i++) /* 给rpos[]赋初值0 */
(*M).rpos[i]=0;
for(i=1;i<=(*M).tu;i++) /* 计算每行非零元素数并赋给rpos[] */
(*M).rpos[(*M).data[i].i]++;
for(i=(*M).mu;i>=1;i--) /* 计算rpos[] */
{
(*M).rpos[i]=1; /* 赋初值1 */
for(j=i-1;j>=1;j--)
(*M).rpos[i]+=(*M).rpos[j];
}
return OK;
}

这么简单了
那去运行一下不就什么都知道了