资源简介

已知稀疏矩阵用三元组表示编写C=A*B的算法。

资源截图

代码片段和文件信息

#include
#include
#include
#include

#define SMAX 16

typedef int datatype;
typedef struct 
{
int ij;
datatype v;
}node;
typedef struct
{
int mnt;
node data[SMAX];
}spmatrix;

spmatrix *CreateM()
{
int iabc;
spmatrix *s;
s=(spmatrix *)malloc(sizeof(spmatrix));
    for(i=0;i<1;i++)
{
printf(“请输入行数,列数,以及数据个数:\n“);
scanf(“%d %d %d“&a&b&c);
if((c>a*b)||(c>SMAX))
{
printf(“您输入的元素个数错误!\n请重新输入:\n“);
i--;
continue;
}//进行错误检查
s->m=a;
s->n=b;
s->t=c;
}
printf(“请按下列个数输入元素(行号 列号 数据)\n“);
for(i=0;it;i++)
{
scanf(“%d %d %d“&a&b&c);
if((a>s->m)||(b>s->n))
{
printf(“您输入的元素不合法!请重新输入:\n“);
i--;
continue;
}//防止输入错误
s->data[i].i=a-1;
s->data[i].j=b-1;
s->data[i].v=c;
}
return s;
}

void Output(spmatrix *s)
{
int i=0j=0k=0flag=0;
printf(“大小:%d×%d\n“s->ms->n);
for(;im;i++)
{
for(j=0;jn;j++)
if((i==s->data[k].i)&&(j==s->data[k].j))
{
printf(“%4d“s->data[k].v);
k++;
}
else printf(

评论

共有 条评论