您好,
我現在在寫學校作業
但是我寫不出來學校要求的,麻煩您們看這發文看到最後
學校要求的是這樣
我們要把這些數字讀進去
2 3
1 2 3
4 5 6
2 1
1
0
2 3
1 2 3
4 5 6
3 2
1 0
0 1
1 0
然後會讀出來的是這樣子
Invalid calculation!!
4 2
10 5
然後我寫的是這樣
#include <stdio.h>
int main ()
{
int a[10][10],b[10][10],c[10][10];
int i, j, k;
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++) {
c[i][j] = 0;
for (k = 0; k < 3; k++)
c[i][j] += a[i][k] * b[k][j];
}
}
int main(void)
{
int i, j;
int A[2][3];
int B[2][1] ;
int z[2][2];
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++)
printf("%3d", z[i][j]);
putchar('\n');
}
void mul(const int ma[2][3], const int mb[3][2], int mc[2][2])
{
int i, j, k;
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++) {
mc[i][j] = 0;
for (k = 0; k < 3; k++)
mc[i][j] += ma[i][k] * mb[k][j];
}
}
return (0);
}
我不知道應該怎麼改,所以可不可以請您們教我怎麼寫嗎
這作業今天要交的
希望有人出現救我
感恩
拿這個程式去改
加油
下午四點多了
不知道還來得及嗎?
#include <stdio.h>
void getMatrixElements(int matrix[][10], int row, int column) {
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
scanf("%d", &matrix[i][j]);
}
}
}
void multiplyMatrices(int first[][10],
int second[][10],
int result[][10],
int r1, int c1, int r2, int c2) {
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
result[i][j] = 0;
}
}
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
for (int k = 0; k < c1; ++k) {
result[i][j] += first[i][k] * second[k][j];
}
}
}
}
void display(int result[][10], int row, int column) {
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("%d ", result[i][j]);
if (j == column - 1)
printf("\n");
}
}
}
int main() {
int first[10][10], second[10][10], result[10][10], r1, c1, r2, c2;
while (scanf("%d %d", &r1, &c1) != EOF) {
getMatrixElements(first, r1, c1);
scanf("%d %d", &r2, &c2);
getMatrixElements(second, r2, c2);
if (c1 != r2) {
printf("Invalid calculation!!\n");
} else {
multiplyMatrices(first, second, result, r1, c1, r2, c2);
display(result, r1, c2);
}
}
return 0;
}