資源簡介
已知稀疏矩陣用三元組表示編寫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(
- 上一篇:歡迎界面 labview
- 下一篇:模擬死鎖檢測算法[死鎖檢測算法實現]
評論
共有 條評論