C++输入一个n*n的字符矩阵,把它左转90度后输出.

输入仅包含一个测试样例。第一行是一个正整数n(0<n<=10)。接下来的n行输入n*n的字符矩阵,每行n个字符,字符之间没有分隔。输出格式将左转90度的矩阵分n行输出,每... 输入仅包含一个测试样例。
第一行是一个正整数n(0<n<=10)。
接下来的n行输入n*n的字符矩阵,每行n个字符,字符之间没有分隔。

输出格式
将左转90度的矩阵分n行输出,每行n个字符,字符之间没有分隔。

样例输入
3
abc
def
ghi
展开
 我来答
chinaboyzyq
2016-01-01 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3300万
展开全部

1、矩阵的转置就是矩阵的行与列的转换。

2、矩阵左转90度就是把现有矩阵每一行向左转90角变成列形成的新矩阵,也就是整个矩阵逆时针转90度后得到矩阵。

3、C++示例,程序中为避免手动输入字符的麻烦,只输入n,字符由随机数产生。

#include <iostream>
#include <cstdlib>
#define rnd(x)(rand() % x);

using namespace std;

int main(int argc, char *argv[])
{
char c[50][50];
int n,i,j;

isr:
    cout<<"input n,2=<n<=25"<<endl;
    cin>>n;
    if(n<2||n>50)goto isr;
    
for(i=0;i<n;i++){
  for(j=0;j<n;j++){
      c[i][j]=97+rnd(25);
  cout<<c[i][j];   
  }
  cout<<endl;
 }     
    cout<<endl;
for(i=n-1;i>=0;i--){
  for(j=0;j<n;j++){
  cout<<c[j][i];   
  }
  cout<<endl;
 }
    cout<<endl<<endl;         
    getchar();
 
return 0;
}
_iiiiiii
2014-12-28 · TA获得超过1024个赞
知道小有建树答主
回答量:634
采纳率:75%
帮助的人:198万
展开全部
#include <iostream>
using namespace std;

void print_matrix(char *matrix, int size)
{
for (int row = 0; row < size; row ++)
{
for (int col = 0; col < size; col ++)
cout << matrix[row * size + col];
cout << endl;
}
cout << endl;
}

void input_matrix(char *&matrix, int& size)
{
cin >> size;
matrix = new char[size*size];
for (int i = 0; i < size*size; i ++)
cin >> matrix[i];
}

void transpose_matrix(char *matrix, int size)
{
for (int row = 0; row < size; row ++)
{
for (int col = 0; col < size; col ++)
if (row < col)
{
char temp = matrix[row * size + col];
matrix[row * size + col] = matrix[col * size + row];
matrix[col * size + row] = temp;
}
}
}

void test_data(char *&matrix, int &size)
{
size = 3;
matrix = new char[size*size];
for (int i = 0; i < size*size; i ++)
matrix[i] = ((int)'a') + i;
}

int main()
{
char *matrix;
int size;
//test_data(matrix, size);
input_matrix(matrix, size);
print_matrix(matrix, size);
transpose_matrix(matrix, size);
print_matrix(matrix, size);
delete []matrix;
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式