实现矩阵的乘法初级程序
2016-03-19 17:35
363 查看
#include <stdio.h>
int main()
{
int arr1[10][10] = { 0 }, arr2[10][10] = { 0 }, arr3[10][10] = { 0 };
int m1, n1, m2, n2, m3, n3;
int i, j, z;
//int x, y;
//int c;
loop:
printf("请分别输入两个矩阵的行数和列数:\n");
scanf_s("%d%d%d%d", &m1, &n1, &m2, &n2);
if ((m1 != n2) || (n1 != m2))
{
printf("这两个矩阵不能进行乘法运算!\n请重新输入:\n");
goto loop;
}
else
{
printf("输入第一个矩阵:\n");
for (i = 0; i < m1;i++)
for (j = 0; j < n1; j++)
{
scanf_s("%d", &arr1[i][j]);
}
printf("\n");
printf("输入第二个矩阵:\n");
for (i = 0; i < m2; i++)
for (j = 0; j < n2; j++)
{
scanf_s("%d", &arr2[i][j]);
}
printf("\n");
m3 = m1;
n3 = n2;
for (i = 0; i < m1;i++)
for (j = 0; j < m2;j++) //矩阵的乘法运算
for (z = 0; z < m1; z++)
{
arr3[i][z] = arr3[i][z] + arr1[i][j] * arr2[j][z]; //三重循环实现矩阵中的两个元素相乘
}
printf("经乘法运算后得到的矩阵为:\n");
for (i = 0; i < m3; i++)
{
for (j = 0; j < n3; j++)
{
printf("%d ", arr3[i][j]);
}
printf("\n");
}
}
return 0;
}
int main()
{
int arr1[10][10] = { 0 }, arr2[10][10] = { 0 }, arr3[10][10] = { 0 };
int m1, n1, m2, n2, m3, n3;
int i, j, z;
//int x, y;
//int c;
loop:
printf("请分别输入两个矩阵的行数和列数:\n");
scanf_s("%d%d%d%d", &m1, &n1, &m2, &n2);
if ((m1 != n2) || (n1 != m2))
{
printf("这两个矩阵不能进行乘法运算!\n请重新输入:\n");
goto loop;
}
else
{
printf("输入第一个矩阵:\n");
for (i = 0; i < m1;i++)
for (j = 0; j < n1; j++)
{
scanf_s("%d", &arr1[i][j]);
}
printf("\n");
printf("输入第二个矩阵:\n");
for (i = 0; i < m2; i++)
for (j = 0; j < n2; j++)
{
scanf_s("%d", &arr2[i][j]);
}
printf("\n");
m3 = m1;
n3 = n2;
for (i = 0; i < m1;i++)
for (j = 0; j < m2;j++) //矩阵的乘法运算
for (z = 0; z < m1; z++)
{
arr3[i][z] = arr3[i][z] + arr1[i][j] * arr2[j][z]; //三重循环实现矩阵中的两个元素相乘
}
printf("经乘法运算后得到的矩阵为:\n");
for (i = 0; i < m3; i++)
{
for (j = 0; j < n3; j++)
{
printf("%d ", arr3[i][j]);
}
printf("\n");
}
}
return 0;
}
相关文章推荐
- HDOJ 2023 求平均成绩
- 第4周-项目2-太乐了
- [Java代码] [Leetcode] Combination Sum 组合数之和
- Visual Studio 2013提示已安装问题解决方法
- 排序总结(二)
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之环境配置
- Java集合总结
- Visual Studio 2015: rcxdti.dll is unable to load rcxdtiui.dll
- 项目4:猜小偷
- 创建和启动一个线程
- nice命令兼容性分析实例
- C++基础——new与delete
- 第三周学习进度
- PyCharm5.0.2最新版破解注册激活码(图文版)
- Qt中安装连接数据的服务
- ubuntu 常用快捷键
- poj3278-简单搜索练习
- [Java语言] Same Tree Symmetric Tree 相同树 对称树
- mysql增量备份还原详解
- 第四周项目二 求sinx值