|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这样写,输出结果会有问题,求解哪一步出错了?(感觉和答案一模一样啊...)感谢!
[code]#include <stdio.h>
int main() {
int i, j, k = 0;
int M, P, N;
int row;
//定义大小:
printf("请输入第一个矩阵的尺寸(M * P):");
scanf("%d*%d", &M, &P);
int matrix1[M][P];
printf("请输入第二个矩阵的尺寸(P * N):");
scanf("%d*%d", &P, &N);
int matrix2[P][N];
int matrix[M][N];
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
matrix[M][N] = 0;
}
}
//输入值:
printf("请输入第一个矩阵的值:");
for (i = 0; i < M; i++) {
for (j = 0; j < P; j++) {
scanf("%d", &matrix1[i][j]);
}
}
printf("请输入第二个矩阵的值:");
for (i = 0; i < P; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &matrix2[i][j]);
}
}
//计算结果
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
for (k = 0; k < P; k++) {
matrix[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
//输出结果
printf("计算结果如下:\n");
row = M > P ? M : P;
for (i = 0; i < row; i++) {
printf("| ");
//matrix1:
for (j = 0; j < P; j++) {
if (i < M) {
printf("\b%d ", matrix1[i][j]);
printf("|");
}
else {
printf("\b\b\b ");
}
}
//*:
if (i == row / 2) {
printf(" * ");
}
else {
printf(" ");
}
//matrix2:
printf("| ");
for (j = 0; j < N; j++) {
if (i < P) {
printf("\b%d ", matrix2[i][j]);
printf("|");
}
else {
printf("\b\b\b ");
}
}
//=:
if (i == row / 2) {
printf(" = ");
}
else {
printf(" ");
}
//matrix:
printf("| ");
for (j = 0; j < N; j++) {
if (i < M) {
printf("\b%d ", matrix[i][j]);
printf("|");
}
else {
printf("\b\b\b ");
}
}
printf("\n");
}
return 0;
} |
-
|