#include <stdio.h>
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
*/
追问谢谢啦
追答不客气,很简单,但是看一楼回答问题方式,就帮你做了一下。