【题目内容】
计算两个矩阵的乘积。
【输入形式】
两个二维矩阵
【输出形式】
矩阵的乘积
【测试用例1】
输入:
1 2
1 -1
输出:
3 0
0 3
行列对应值相乘
你这测试用例只输入一个矩阵,是这个矩阵自乘么
#include <stdio.h>
int main() {
int a[100][100],b[100][100] = {0},n=0,m,i=0,j=0,k;
while(scanf("%d",&m) != EOF)
{
a[i][j] = m;
if(getchar() == '\n')
{
i++;
j=0;
}
else
j++;
}
n=i;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
b[i][k] += a[i][j] * a[j][k];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-4d",b[i][j]);
printf("\n");
}
return 0;
}
A的行乘以B的列求和就是c[i][j]的值
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a[2][2], b[2][2];
int i, j, k;
int c[2][2] = { 0 };
//输入矩阵
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
scanf("%d", &a[i][j]);
b[i][j] = a[i][j];
}
}
//计算c
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
c[i][j] = 0;
for (k = 0; k < 2; k++)
c[i][j] += a[i][k] * b[k][j];
}
}
//输出
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
if (j < 1)
printf("%d ", c[i][j]);
else
printf("%d\n", c[i][j]);
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!