c++将矩阵顺时针旋转90度

53911147523568122914360123633875768168581351513610#include<iostream>#include<cstdio>#... 5
39 11 14 75 23
56 81 22 91 43
60 12 36 33 87
57 68 16 85 8
13 51 51 36 10
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int N,num[6][6];

int main(){
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);

cin>>N;
for(int i=0;i<N;i++)for(int j=0;j<N;j++)cin>>num[i][j];
for(int i=0;i<N;i++){
for(int j=0;j<(N-1);j++)cout<<num[i][j]<<" ";
cout<<num[i][N-1]<<endl;
}
fclose(stdin);fclose(stdout);
return 0;
}
求大神帮我把这代码改成把上面那逆时针转90的,谢谢
展开
 我来答
猫猫一号脑
推荐于2017-11-25 · TA获得超过2739个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:525万
展开全部
你到底要逆时针还是顺时针
顺时针的,转置一下,水平翻转一下就好了
逆时针的,转置一下,垂直翻转一下就好了

#include <stdio.h>
#include <stdlib.h>
#define N 4
void show(int a[N][N]) {
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%3d", a[i][j]);
}
printf("\n");
}
printf("--\n");
}
int main()
{
int a[N][N];
int i, j, t = 1;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
a[i][j] = t++;
}
}
show(a);
for (i = 0; i < N; i++) {
for (j = 0; j < i; j++) {
t = a[i][j];
a[i][j] = a[j][i];
a[j][i] = t;
}
}
show(a);
/* 这是顺时针水平翻转的,注意不能与下面垂直翻转的同时运行,不然就水平翻一下,垂直又翻一下了
for (i = 0; i < N; i++) {
for (j = 0; j < N/2; j++) {
t = a[i][j];
a[i][j] = a[i][N-1-j];
a[i][N-1-j] = t;
}
}
show(a);*/
for (i = 0; i < N; i++) {
for (j = 0; j < N/2; j++) {
t = a[j][i];
a[j][i] = a[N-1-j][i];
a[N-1-j][i] = t;
}
}
show(a);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BrotherGao
2013-03-11 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:416万
展开全部
楼主你好!
这个是矩阵转置问题,根据转置的定义如下:
矩阵A的转置为这样一个n×m阶矩阵B,满足B=a(j,i),即 b (i,j)=a (j,i)(B的第i行第j列元素是A的第j行第i列元素)
所以根据定义更改部分如下:(将原来的i改为j,原来的j改为i,num[i][N-1]改为num[N-1][j]即可,具体参照如下代码)
for(int i=0;i<N;i++){
for(int j=0;j<(N-1);j++)cout<<num[i][j]<<" ";
cout<<num[i][N-1]<<endl;
}

上面的这段改为下面的这段就可以了!
for(int j=0;j<N;j++){
for(int i=0;i<(N-1);i++)cout<<num[i][j]<<" ";
cout<<num[N-1][j]<<endl;
希望我的回答对你有帮助!望采纳!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式