将下面矩阵分别按顺时针90度,逆时针90度,和旋转180度,打印出来
求各位大神解答一下
用C语言编程 展开
#include "stdio.h"
void main()
{
int a[5][6]={1,3,4,2,5,2,
2,3,6,3,8,3,
2,9,7,9,4,8,
6,3,8,1,9,3,
9,3,5,2,8,5,};
int s90[6][5],ni90[6][5],x180[5][6];
int i,j;
printf("顺时针旋转90度矩阵为:\n");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[4-j][i];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
printf("逆时针旋转90度矩阵为:\n");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[j][5-i];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
printf("旋转180度矩阵为:\n");
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
s90[i][j]=a[4-i][5-j];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
}
谢谢。。
C语言实现如下:
#include<stdio.h>
void main()
{
int i,j,n,m;
int a[100][100];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
printf("顺时针90度后:\n");
for(i=0;i<m;i++)
{
for(j=n-1;j>=0;j--)
printf("%d\t",a[j][i]);
printf("\n");
}
printf("逆时针90度后:\n");
for(i=m-1;i>=0;i--)
{
for(j=0;j<n;j++)
printf("%d\t",a[j][i]);
printf("\n");
}
printf("旋转180度后:\n");
for(i=n-1;i>=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
刚刚做完携程的笔试题,刚好有这一题,把我的思路写一下(遵循考试系统上的标准输入输出)
python:
import sys
list0 = []
line1 = raw_input()
list0.append(line1)
size = len(line1.split())
for i in range(size-1):
line2 = raw_input()
list0.append(line2)
new = []
for i in range(size):
ss = list0[i].split(" ")
#print(ss)
new.append(ss)
list1 = []
for j in range(size):
str = ""
for i in range(size-1,-1,-1):
str += new[i][j] + " "
list1.append(str)
for i in range(size):
sys.stdout.write(list1[i])
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdio.h"
void main()
{
int a[5][6]={1,3,4,2,5,2,
2,3,6,3,8,3,
2,9,7,9,4,8,
6,3,8,1,9,3,
9,3,5,2,8,5,};
int s90[6][5],ni90[6][5],x180[5][6];
int i,j;
printf("顺时针旋转90度矩阵为:\n");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[4-j][i];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
printf("逆时针旋转90度矩阵为:\n");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[j][5-i];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
printf("旋转180度矩阵为:\n");
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
s90[i][j]=a[4-i][5-j];
printf("%2d%",s90[i][j]);
}
printf("\n");
}
}