C语言实现一个矩阵乘法计算器
虽然一般做练习题的时候具体的矩阵最多四阶左右,但是作为实现该功能的代码最好不要局限于此。由于矩阵乘法的运算要求,第二个矩阵的行数必须与第一个矩阵的列数相等,且两个矩阵的行列数均不可小于或等于0,该算法会先要求输入第一个矩阵的行数与列数,然后按行输入矩阵的元素,接着输入第二个矩阵的行数与列数,判断是否符合要求,然后同样按行输入矩阵元素。然后就可以得到结果。
虽然还有很多可以改进的地方,比如把输入矩阵做成函数以简化代码,另外当时只是一边构思一边编写代码,所以命名极不规范,建议初学者不要养成这样的习惯。不过本人确实是初学者,目的只是实现这样一个小功能,细枝末节的地方暂不深究。
具体代码如下(请不要吐槽我混乱的代码风格)
#include
int main(void)
{
int m,n; //输入第一个矩阵的规格
printf("请输入第一个矩阵的行数和列数:\n");
scanf("%d %d",&m,&n);
if(m
for(j_1=0;j_1
printf("不可小于或等于0!\n");
printf("请重新输入第一个矩阵的行数和列数:\n");
scanf("%d %d",&p,&q);
}
if(p!=n) //判断第二个矩阵的行数是否等于第一个矩阵的列数 如果不等则重新输入第二个矩阵的行列数
{
printf("第二个矩阵的行数应等于第一个矩阵的列数!\n");
printf("请重新输入第二个矩阵的行数和列数:\n");
scanf("%d %d",&p,&q);
}
int array2[p][q];
int x_2;
int i_2,j_2;
printf("请输入第二个矩阵的元素:\n"); //输入第二个矩阵的元素
for(i_2=0;i_2
scanf("%d",&x_2);
array2[i_2][j_2]=x_2;
}
}
int array3[m][q]; //定义第三个矩阵
int i_3,j_3;
int i;
int sum=0;
for(i_3=0;i_3
for(i=0;i
for(j_3=0;j_3 |