线性代数知识。
两个矩阵的加法。
//完成两个矩阵加法运算
void Add(int row, int column) {
int l_matrix[row][column];
int r_matrix[row][column];
printf("请输入第一个 %d 行 %d 列的矩阵:", row, column);
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &l_matrix[i][j]);
}
}
printf("请输入第二个 %d 行 %d 列的矩阵:", row, column);
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &r_matrix[i][j]);
}
}
for (i = 0; i < row; i++) {
printf("{");
for (j = 0; j < column; j++) {
if (j == 0) {
printf("%d", l_matrix[i][j] + r_matrix[i][j]);
} else {
printf(",%d", l_matrix[i][j] + r_matrix[i][j]);
}
}
printf("}\n");
}
}
两个矩阵的减法。
//完成两个矩阵减法运算
void Sub(int row, int column) {
int l_matrix[row][column];
int r_matrix[row][column];
printf("请输入第一个 %d 行 %d 列的矩阵:", row, column);
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &l_matrix[i][j]);
}
}
printf("请输入第二个 %d 行 %d 列的矩阵:", row, column);
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &r_matrix[i][j]);
}
}
for (i = 0; i < row; i++) {
printf("{");
for (j = 0; j < column; j++) {
if (j == 0) {
printf("%d", l_matrix[i][j] - r_matrix[i][j]);
} else {
printf(",%d", l_matrix[i][j] - r_matrix[i][j]);
}
}
printf("}\n");
}
}
两个矩阵的乘法。
//完成两个矩阵的乘法运算
void Mul(int row, int column) {
int l_matrix[row][column];
int r_matrix[column][row];
printf("请输入第一个 %d 行 %d 列的矩阵:", row, column);
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &l_matrix[i][j]);
}
}
printf("请输入第二个 %d 行 %d 列的矩阵:", column, row);
for (i = 0; i < column; i++) {
for (j = 0; j < row; j++) {
scanf("%d", &r_matrix[i][j]);
}
}
int k;
for (i = 0; i < row; i++) {
printf("{");
for (j = 0; j < column; j++) {
int sum = 0;
for (k = 0; k < column; k++) {
sum += l_matrix[j][k] * r_matrix[k][j];
}
if (i == 0) {
printf("%d", sum);
} else {
printf(",%d", sum);
}
}
printf("}\n");
}
}
一个矩阵和一个常数的乘法。
//完成一个矩阵和常数的乘法运算
void MulByFactor(int row, int column, int factor) {
int l_matrix[row][column];
printf("请输入第一个 %d 行 %d 列的矩阵:", row, column);
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &l_matrix[i][j]);
}
}
for (i = 0; i < row; i++) {
printf("{");
for (j = 0; j < column; j++) {
if (j == 0) {
printf("%d", l_matrix[i][j] * factor);
} else {
printf(",%d", l_matrix[i][j] * factor);
}
}
printf("}\n");
}
}
转置矩阵。
//转置矩阵运算
void Transposed(int row, int column) {
int transposed_matrix[column][row];
printf("请输入需要转置的 %d 行 %d 列的矩阵:\n");
int i, j;
for (i = 0; i < row; i++) {
for (j = 0; j < column; j++) {
scanf("%d", &transposed_matrix[j][i]);
}
}
for (i = 0; i < column; i++) {
printf("{");
for (j = 0; j < row; j++) {
if (j == 0) {
printf("%d", transposed_matrix[i][j]);
} else {
printf(",%d", transposed_matrix[i][j]);
}
}
printf("}\n");
}
}
日常放代码水文章:-)
开发工具 Dev-C++。