2011华为编程系列之矩阵转置
来源:互联网 发布:中华软件网 编辑:程序博客网 时间:2024/06/15 03:22
1 矩阵转置
问题描述:
将一个N*N矩阵的行列互换
· 要求实现函数
void MatrixTranspose (const char *InArr, unsigned int n, const char *OutArray)
【输入】InArr: 输入的字符矩阵
n: N*N矩阵的行数
【输出】OutArray: 转置后的字符矩阵
【返回】 无
注:输入输出的矩阵都是以一维形式保存的二维数组,
比如输入为{‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’},
实际上表示如下3*3的矩阵
‘1’,’2’,’3’,
‘4’,’5’,’6’,
‘7’,’8’,’9’
· 示例
输入InArr = {‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’},n=3
输出OutArray = {‘1’,’4’,’7’,’2’,’5’,’8’,’3’,’6’,’9’}
#include <iostream>using namespace std;void MatrixTranspose(const char *InArray,int n, char* OutArray){ int i,j; int k=0; for(i=0;i<n;i++) { for(j=i;j<n*n;j+=n) OutArray[k++]=InArray[j]; }}void main(){ constchar InArray[]={'1','2','3','4','5','6','7','8','9'};unsigned int n=9;char OutArray[9]="0";MatrixTranspose(InArray,3,OutArray);for(int i=0;i<9;i++)cout<<OutArray[i];cout<<endl;}
注意点:
1 定义的若为常量的const char OutArray[],是不能被写入的
2 矩阵的转置函数:输出数组的下标操作不受循环影响的自加操作,对于赋值操作,两次循环,即可实现
- 2011华为编程系列之矩阵转置
- 2011华为编程系列之评委打分
- 2011华为编程系列之数组比较
- 编程系列之:矩阵打印
- 《编程珠玑》之矩阵转置
- 华为在线编程系列-最小公倍数
- 华为在线编程系列-字符串分割
- 华为在线编程系列-坐标移动
- 华为在线编程系列-密码合格验证
- 华为在线编程系列-进制转换
- 华为在线编程系列-简单密码
- 华为在线编程系列-数据分类处理
- 华为在线编程系列-字符串排序
- 华为在线编程系列-质数因子
- 华为在线编程系列-明明的随机数
- 华为在线编程系列-字符串加密解密
- 矩阵转置-编程心得
- 华为校招上机编程之‘‘十六进制转十进制’’
- test
- C2000系列常见问题
- 模拟js数组方法map()
- Android反射机制实现与原理
- wifi小车的制作
- 2011华为编程系列之矩阵转置
- 最全的CSS浏览器兼容问题
- 正则表达式学习--RegexBuddy工具的使用
- java版 贝塞尔曲线算法
- 6条常用的MySQL查询
- 谈程序在RAM,FLASH 和外部RAM中运行的速度
- VC++ WROD DWORD 字节大小
- Linux下USB HID device driver研究(二)
- 获取浏览器窗口的大小