中易网

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

答案:3  悬赏:30  
解决时间 2021-02-18 04:42
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的,谢谢
最佳答案
你到底要逆时针还是顺时针
顺时针的,转置一下,水平翻转一下就好了
逆时针的,转置一下,垂直翻转一下就好了

#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[j][i];
a[j][i] = a[N-1-j][i];
a[N-1-j][i] = t;
}
}
show(a);
return 0;
}
全部回答
楼主你好! 这个是矩阵转置问题,根据转置的定义如下: 矩阵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; 希望我的回答对你有帮助!望采纳!
c语言实现如下: #include void main() {     int i,j,n,m;                                                           int a[100][100];     scanf("%d%d",&n,&m);     for(i=0;i=0;j--) printf("%d\t",a[j][i]); printf("\n"); } printf("逆时针90度后:\n"); for(i=m-1;i>=0;i--) { for(j=0;j=0;i--) { for(j=m-1;j>=0;j--) printf("%d\t",a[i][j]); printf("\n"); } }样例输入: 4 5 45 7 64 84 65 15 5 35 97 46 4165 967 46 48 46 123 4 56 8 54 顺时针90度后: 123     4165    15      45 4       967     5       7 56      46      35      64 8       48      97      84 54      46      46      65 逆时针90度后: 65      46      46      54 84      97      48      8 64      35      46      56 7       5       967     4 45      15      4165    123 旋转180度后: 54      8       56      4       123 46      48      46      967     4165 46      97      35      5       15 65      84      64      7       45
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
春芳格拉条地址在哪,我要去那里办事
隋朝的建立与灭亡的大概经过
一部老的内地电视剧,讲的是大学生活的。。。
口袋妖怪叶绿中哪几只神兽是加特攻努力值的
重庆特色小吃地址在哪,我要去那里办事
生化危机启示录出现 appid is not configured
我是自由职业者怎样向银行贷款?
求VZW Airwaves铃声啊
remotedll dll注入器怎么用
烟台哪有卖华鹤木门的??
怎么看看两个人是不是真的合适,兴趣是不是真
紫薇蔬菜水果粮油超市怎么去啊,有知道地址的
ABS的温度一般用多少?
西赵庄地址有知道的么?有点事想过去
稀释香料用开水好还是高度白酒好
推荐资讯
天津戴尔售后地址在什么地方?
为什么最近很多人骂权志龙
如何在windows下安装原版mac系统
济南到章丘怎样最快,我下午六点从火车站下车
例句:我是黎明的曙光,我就是幸福。 我是—
PS3分割是啥意思?我E3下载游戏解压后,用那
如何有效快速的学习HTML/CSS/JS
昆池乡地址有知道的么?有点事想过去
锅炉的插座要布多高?
杨铭宇黄焖鸡米饭光华街店怎么去啊,有知道地
如何总理论公式推导出三极管ic=β*ib?
求女主淡定的穿越文,最好是宠文,小虐也是可
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?