C语言之基本算法33—矩阵的基本运算
//矩阵基础
/*
==================================================================
题目:输入矩阵a,b,输出a,b,a的转置矩阵d。a*b,b+d=e;
==================================================================
*/
#include<stdio.h>
#define TJ1 for(i=0;i<2;i++)
#define TJ2 for(j=0;j<3;j++)
#define hh printf("\n")
void main()
{
int a[2][3],b[3][2],c[2][2],d[3][2],e[3][2];
int i,j,k;
//输入矩阵a
printf("输入2*3矩阵a:\n");
TJ1
TJ2
scanf("%d",&a[i][j]);
//输入矩阵b
printf("\n输入3*2矩阵b:\n");
TJ2
TJ1
scanf("%d",&b[j][i]);
//输出矩阵a:
printf("\n=====================\n输出矩阵a:\n");
TJ1
{
TJ2
printf("%4d",a[i][j]);
hh;
}
printf("\n=====================\na的转置矩阵d:\n");
TJ1
TJ2
d[j][i]=a[i][j];
TJ2
{
TJ1
printf("%4d",d[j][i]);
printf("\n");
}
//输出矩阵b:
printf("\n\n=====================\n输出矩阵b:\n");
TJ2
{
TJ1
printf("%4d",b[j][i]);
hh;
}
//矩阵a*矩阵b,保存至c
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];
}
//输出矩阵c:
printf("\n=====================\n矩阵a[2][3]*b[3][2]=c[2][2],例如以下:\n");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%4d ",c[i][j]);
printf("\n");
}
printf("\n=====================\n矩阵b+矩阵d:\n");
TJ2
TJ1
e[j][i]=b[j][i]+d[j][i];
TJ2
{
TJ1
printf("%4d ",e[j][i]);
hh;
}
}
/*
====================================================================
评:
1、掌握输出时换行的方法;
2、转置矩阵时将原矩阵行和列交换。a[i][j]-->d[j][i],原来是2行3列,如今以3行两列输出!
即
i=0;i<3;i++;\j=0;j<2;j++;i和j仅仅是符号,不影响结果。仅仅是输出时与d[行][列]相应起来就好。
3、加法非常easy,但必须是通行矩阵;
4、乘法比較复杂,先定义初始矩阵。赋初值=0;然后定义保存乘积矩阵的列,注意该列最大
值为左矩阵的列,然后左行*右列,先列添加,然后换下一行,反复以上步骤,直至最后一行
乘以最后一列结束。
=====================================================================
*/
最新文章
- (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)
- ABP框架 - 领域服务
- java多线程之hashmap concurrenthashmap的状态同步
- Linq系列
- Xcode7创建的项目添加启动图有问题?
- 20145211 《Java程序设计》第10周学习总结——昨夜星辰昨夜风
- CentOS防火墙操作实例(启动、停止、开、闭端口)
- uva 10560 - Minimum Weight(数论)
- 《JavaScript 闯关记》之表达式和运算符
- ASP.NET vNext (一)- 基本概念和环境配置
- Java面试14|Session与Cookie
- [Luogu2852][USACO06DEC]牛奶模式Milk Patterns
- MQTT在react-native中的运行
- python3 time模块
- Entity Framework入门教程(12)--- EF进行批量添加/删除
- windows多线程同步--事件
- 兼容低版本 ie 的思路
- loadrunner脚本001
- CURL 常用参数
- MFC 三种消息