void?input(int?matrix[8][8])
{
int?i=0,j=0; printf("please?input?the?entries:\n");? //按下三角輸入。 for(i=0;i<8;i++) { for(j=0;j<=i;j++) {scanf("%d",&matrix[i][j]);
matrix[j][i]=matrix[i][j];
} }}
void?output(int?matrix[8][8])
{
int?i=0,j=0; printf("\n"); for(i=0;i<8;i++) { for(j=0;j<8;j++) {printf("%4d?",matrix[i][j]);
} printf("\n"); }}
//轉置:ps:對稱矩陣,轉置還是自己,好像沒有什麽意義。
void?transposition(int?matrix1[8][8],int?matrix2[8][8])
{
int?i=0,j=0; for(i=0;i<8;i++) { for(j=0;j<8;j++) {matrix2[i][j]?=?matrix1[j][i];
} }}
//加法
void?addition(int?matrix1[8][8],int?matrix2[8][8],int?matrix3[8][8])
{
int?i=0,j=0; for(i=0;i<8;i++) { for(j=0;j<8;j++) {matrix3[i][j]?=?matrix1[i][j]+matrix2[i][j];
} }}
//減法
void?subtraction(int?matrix1[8][8],int?matrix2[8][8],int?matrix3[8][8])
{
int?i=0,j=0; for(i=0;i<8;i++) { for(j=0;j<8;j++) {matrix3[i][j]?=?matrix1[i][j]-matrix2[i][j];
} }}
//乘法
void?multiplication(int?matrix1[8][8],int?matrix2[8][8],int?matrix3[8][8])
{
int?i=0,j=0,k=0; for(i=0;i<8;i++) { for(j=0;j<8;j++) {matrix3[i][j]=0;?//初始化。
for(k=0;k<8;k++)
{
matrix3[i][j]?+=?matrix1[i][k]*matrix2[k][j];
}
} }}
int?main()
{
static?int?matrix[8][8]; int?matrix2[8][8]; int?matrix3[8][8]; input(matrix); output(matrix); transposition(matrix,matrix2); output(matrix2); addition(matrix,matrix2,matrix3);//結果放在第三個矩陣中 output(matrix3); multiplication(matrix,matrix2,matrix3);//結果放在第三個矩陣中 output(matrix3); subtraction(matrix3,matrix,matrix2);//結果放在第二個矩陣中 output(matrix2); return?0;}
/*
1?
1?2
3?4?5
5?4?2?1
2?3?1?4?6
9?8?7?6?5?3
3?2?1?4?5?6?7
7?5?4?3?2?4?5?6
*/