稀疏矩陣的儲存及運算
阿新 • • 發佈:2019-02-14
main()
{int a[max][3],b[max][3],a1[max][3],b1[max][3],c[max][3],d[max][3];
int i,y;
printf("輸入稀疏方陣A的行數,列數和非零元個數:");
scanf("%d,%d,%d",&a[0][0],&a[0][1],&a[0][2]);
for(i=1;i<=a[0][2];i++)
{
printf("輸入第%d個非0元素的行數,列數和值:",i);
scanf("%d,%d,%d",&a[i][0],&a[i][1],&a[i][2]);
}
printf("輸出A的三元組表示:/n");
print(a);
printf("/n輸入稀疏方陣B的行數,列數和非零元個數:");
scanf("%d,%d,%d",&b[0][0],&b[0][1],&b[0][2]);
for(i=1;i<=b[0][2];i++)
{
printf("輸入第%d個非0元素的行數,列數和值:",i);
scanf("%d,%d,%d",&b[i][0],&b[i][1],&b[i][2]);
}
printf("輸出B的三元組表示:/n");
print(b);
printf("/n");
printf("============= 菜 單 ==============/n");
printf(" 1 A矩陣轉置/n");
printf(" 2 B矩陣轉置/n");
printf(" 3 C = A + B/n");
printf(" 4 D = A * B/n");
printf("======================================/n/n");
loop: printf("請選擇相應操作的序號:");
scanf("%d",&y);
switch(y)
{case 1: convert(a,a1);
printf("輸出A轉置的三元組表示:/n");
print(a1);
printf("/n");
goto loop;
case 2: convert(b,b1);
printf("輸出B轉置的三元組表示:/n");
print(b1);
printf("/n");
goto loop;
case 3: add(a,b,c);
printf("輸出C=A+B的三元組表示:/n");
print(c);
printf("/n");
goto loop;
case 4: multi(a,b,d);
printf("輸出D=A*B的三元組表示:/n");
print(d);
printf("/n");
goto loop;
}
}
{int a[max][3],b[max][3],a1[max][3],b1[max][3],c[max][3],d[max][3];
int i,y;
printf("輸入稀疏方陣A的行數,列數和非零元個數:");
scanf("%d,%d,%d",&a[0][0],&a[0][1],&a[0][2]);
for(i=1;i<=a[0][2];i++)
{
printf("輸入第%d個非0元素的行數,列數和值:",i);
scanf("%d,%d,%d",&a[i][0],&a[i][1],&a[i][2]);
}
printf("輸出A的三元組表示:/n");
print(a);
printf("/n輸入稀疏方陣B的行數,列數和非零元個數:");
scanf("%d,%d,%d",&b[0][0],&b[0][1],&b[0][2]);
for(i=1;i<=b[0][2];i++)
{
printf("輸入第%d個非0元素的行數,列數和值:",i);
scanf("%d,%d,%d",&b[i][0],&b[i][1],&b[i][2]);
}
printf("輸出B的三元組表示:/n");
print(b);
printf("/n");
printf("============= 菜 單 ==============/n");
printf(" 1 A矩陣轉置/n");
printf(" 2 B矩陣轉置/n");
printf(" 3 C = A + B/n");
printf(" 4 D = A * B/n");
printf("======================================/n/n");
loop: printf("請選擇相應操作的序號:");
scanf("%d",&y);
switch(y)
{case 1: convert(a,a1);
printf("輸出A轉置的三元組表示:/n");
print(a1);
printf("/n");
goto loop;
case 2: convert(b,b1);
printf("輸出B轉置的三元組表示:/n");
print(b1);
printf("/n");
goto loop;
case 3: add(a,b,c);
printf("輸出C=A+B的三元組表示:/n");
print(c);
printf("/n");
goto loop;
case 4: multi(a,b,d);
printf("輸出D=A*B的三元組表示:/n");
print(d);
printf("/n");
goto loop;
}
}