【问题描述】
从键盘输入一个正整数n(n∈[1,10]),表示进行乘法运算的两个整形方阵的阶。然后分别输入两个整形方阵A和B,计算A×B后将结果输出到屏幕。
【输入形式】
从键盘输入一个正整数,然后再输入两个整形方阵。
【输出形式】
在屏幕上输出两个整形方阵的乘积。
【输入样例】
3
1 1 1
3 3 3
6 6 6
9 9 9
6 6 6
5 5 5
【输出样例】
########20########20########20
########60########60########60
#######120#######120#######120
【样例说明】
首先输入正整数3,说明接下来要输入的方阵是3×3的。因为
1 1 1 9 9 9 20 20 20
3 3 3 × 6 6 6 = 60 60 60
6 6 6 5 5 5 120 120 120
所以在屏幕上打印:
########20########20########20
########60########60########60
#######120#######120#######120
注:"#"代表空格,每个输出的整数占10位,不足10位在整数的左边用空格补足。
#include<stdio.h>
int main()
{ int a[3][3], b[3][3], c[3][3];
int i, j, k, sum;
printf("输入一个3*3的矩阵:\n");
for(i=0;i<3;i++) //处理矩阵a中的一行中各元素
for(j=0;j<3;j++) //处理矩阵a中某一列中各元素
scanf("%d",&a[i][j]); //输入数据
printf("输入一个3*3的矩阵;\n");
for(i=0;i<3;i++) //处理矩阵b中的一行中各元素
for(j=0;j<3;j++) //处理矩阵b中某一列中各元素
scanf("%d",&b[i][j]); //输入数据
for(i=0;i<3;i++) //对矩阵c进行处理
{ for(j=0;j<3;j++)
{ sum=0;
for(k=0;k<4;k++) //矩阵c中每一个元素的循环计算
{
sum+=a[i][k]*b[k][j]; //对矩阵c中的某一元素进行计算
}
c[i][j]=sum; //给矩阵c中的某一元素进行赋值
}
}
printf("得到一个3×3的矩阵:\n");
for(i=0;i<3;i++) //输出矩阵c
{
for(j=0;j<3;j++)
printf("%5d",c[i][j]);
printf("\n");
}
return 0;
}
我的运算结果是错的,然后输出也不对,不知道怎么去修改。