-
大小: 2KB文件類型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-05-20
- 語言: 其他
- 標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu)??三元組??稀疏矩陣??
資源簡介
已知稀疏矩陣用三元組表示編寫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(“請(qǐng)輸入行數(shù),列數(shù),以及數(shù)據(jù)個(gè)數(shù):\n“);
scanf(“%d?%d?%d“&a&b&c);
if((c>a*b)||(c>SMAX))
{
printf(“您輸入的元素個(gè)數(shù)錯(cuò)誤!\n請(qǐng)重新輸入:\n“);
i--;
continue;
}//進(jìn)行錯(cuò)誤檢查
s->m=a;
s->n=b;
s->t=c;
}
printf(“請(qǐng)按下列個(gè)數(shù)輸入元素(行號(hào)?列號(hào)?數(shù)據(jù))\n“);
for(i=0;it;i++)
{
scanf(“%d?%d?%d“&a&b&c);
if((a>s->m)||(b>s->n))
{
printf(“您輸入的元素不合法!請(qǐng)重新輸入:\n“);
i--;
continue;
}//防止輸入錯(cuò)誤
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(
評(píng)論
共有 條評(píng)論