用C语言编写一个3*3矩阵的转置、水平镜像、顺时针90度旋转、逆时针90度旋转、180度旋转、垂直镜像
设一个3*3d矩阵
1:求转置
int main(){int a[3][3];int len1 = sizeof(a) / sizeof(a[0]);int len2 = sizeof(a[0]) / sizeof(a[0][0]);for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){a[i][j] = i*len2 + j + 1;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");} //表示出3*3矩阵 {{123},{456},{789}} puts("*************************");int t;for (int i = 0; i < len1; ++i){for (int j = 0; j < i; ++j){t = a[j][i];a[j][i] = a[i][j]; //求转置a[i][j] = t;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]); //输出结果}puts(""); }return 0;}
2:求水平镜像
int main(){int a[3][3];int len1 = sizeof(a) / sizeof(a[0]);int len2 = sizeof(a[0]) / sizeof(a[0][0]);for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){a[i][j] = i*len2 + j + 1;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");} //表示出3*3矩阵 {{123},{456},{789}} puts("*************************");{int t;for (int i = 0; i < len1; ++i){for (int j = 0; j < len2 / 2; ++j){t = a[i][j];a[i][j] = a[i][len2 - 1 - j]; //求水平镜像a[i][len2 - 1 - j] = t;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]); //输出结果}puts(""); }return 0;}
灵活利用转置和水平镜像还可以得出矩阵的 顺时针90度旋转、逆时针90度旋转、180度旋转、垂直镜像等。
顺时针90度旋转:先转置再水平镜像
int main()
{int a[3][3];int len1 = sizeof(a) / sizeof(a[0]);int len2 = sizeof(a[0]) / sizeof(a[0][0]);for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){a[i][j] = i*len2 + j + 1;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");}puts("*************************");int t;for (int i = 0; i < len1; ++i){for (int j = 0; j < i; ++j){t = a[j][i];a[j][i] = a[i][j];a[i][j] = t;}}for (int i = 0; i < len1; ++i)
{for (int j = 0; j < len2 / 2; ++j){t = a[i][j];a[i][j] = a[i][len2 - 1 - j];a[i][len2 - 1 - j] = t;}
}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");}
}
逆时针90度旋转:先水平镜像再转置
int main()
{int a[3][3]; int t;int len1 = sizeof(a) / sizeof(a[0]);int len2 = sizeof(a[0]) / sizeof(a[0][0]);for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){a[i][j] = i*len2 + j + 1;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");}puts("*************************");
for (int i = 0; i < len1; ++i){for (int j = 0; j < len2 / 2; ++j){t = a[i][j];a[i][j] = a[i][len2 - 1 - j];a[i][len2 - 1 - j] = t;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < i; ++j){t = a[j][i];a[j][i] = a[i][j];a[i][j] = t;}}for (int i = 0; i < len1; ++i){for (int j = 0; j < len2; ++j){printf("%-3d", a[i][j]);}puts("");}return 0;}
180度旋转:进行两次90度旋转
垂直镜像 :先180度旋转再进行水平镜像
用C语言编写一个3*3矩阵的转置、水平镜像、顺时针90度旋转、逆时针90度旋转、180度旋转、垂直镜像相关推荐
- c语言 编写一个求圆面积的函数area,该函数有一个形式参数r,c语言编写一个求圆面积的函数area,有形参,类型为float...
用c语言编写函数,求圆的周长和面积,用函数.急求. #include#definePI3.1415926doublearea(doubler){returnPI*r*r;}doubleperimete ...
- ACMNO.24 C语言-转置矩阵 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 输入 一个3x3的矩阵 输出 转置后的矩阵 样例
题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 ...
- python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...
导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...
- 用C语言编写一个Linux下的简单shell程序
这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置 jdk-15.0.1-免配置路径版 提取码:earu 免 ...
- C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...
用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...
- c语言用while实现输出加法口诀表,「加法口诀」C语言编写一个加法口诀表 - 金橙教程网...
加法口诀 C语言编写一个加法口诀表 #include void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ printf( ...
- 等腰字母三角形c语言,c语言等腰三角形代码 用C语言编写一个四行*等腰三角形...
键盘读入3个整数,代表三角形三条边,判断是否是等腰三角形?输入输出示#include int main() { int a,b,c; while(scanf("%d%d%d",&a ...
- c语言编写一个简单的答题系统
利用c语言编写一个简单的答题系统. 思路是先设计好题目和答案,再输入自己的答案,利用输入的答案与正确答案对比,从而得出你回答的对错. (一)捆绑题目和答案 我们可以利用结构体对一个题目捆绑上一个答案. ...
最新文章
- 南岸焊接机器人厂_焊接技术的发展历史,世界焊接发展200年回顾,你了解焊接吗?...
- Android入门第八篇之GridView(九宫图)
- [训练日志] 7月22-31日
- 二级域名session共享php本地,PHP二级域名session共享方案
- php bootstraptable分页,php+bootstrap+dataTable+jquery分页列表
- html常用标签详解4-列表标签
- 2-Qt6命令行控制台项目
- 常见维修电路板技术汇总
- 第 15 章 代理模式
- mysql 指针应用_MySQL 游标的作用与使用相关
- 每日一题-12.30-三态数据总线
- 十二进制加计数器-20151112
- 2022秋软工实践 团队展示与选题报告
- 苏宁RPC远程服务调用框架RSF
- 使用 spark sql extensions 实现 skew join
- 记一次计算机课作文,记一次课堂活动作文500字
- 局域网内Linux下开启ftp服务的“曲折路”和命令复习
- DIY一个简易查询系统
- python 人像素描_基于python实现把图片转换成素描
- 最小编辑距离 动态规划 python