试题编号: | 201503-1 |
试题名称: | 图像旋转 |
时间限制: | 5.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 样例输入 2 3 样例输出 3 4 评测用例规模与约定 1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。 |
python程序(100分):
n,m = map(int,input().split())
a = []
for i in range(int(n)):
a.append(list(map(int,input().split())))
for i in range(int(m)-1,-1,-1):
for k in range(int(n)):
print(a[k][i],end=" ")
print()
map()函数用法链接
append()函数用法链接
此题比较简单,但输入数据的处理上还是犯了些错误。
如下python代码提交时——运行错误(0分)
n,m = map(int,input().split())
for i in range(int(n)):
a[i] = list(map(int,input().split()))
for i in range(int(m)-1,-1,-1):
for k in range(int(n)):
print(a[k][i],end=" ")
print()
C语言程序:
#include <stdio.h>
#define N 1005
int a[N][N];
int main()
{
int n, m, i, j;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&a[i][j]);
}
}
for(i=m-1;i>=0;i--){
for(j=0;j<n;j++){
if(j != 0)
putchar(" ");
printf("%d",a[j][i]);
}
putchar("\n");
}
return 0;
}
c++程序:
#include <iostream>
#define N 1001
int a[N][N];
using namespace std;
int main()
{
int n,m,i,j;
cin>>n>>m;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(i=m-1;i>=0;i--){
for(j=0;j<n;j++){
cout << a[j][i] <<" ";
}
cout<<endl;
}
return 0;
}