#A. 矩阵改写
传统题 1000ms 256MiB
题目描述:
小Z有一个 n∗mn∗m 的字符矩阵,这个矩阵里只有小写字母和大写字母,他想改变这个矩阵,规则如下:
如果这个字母是小写,那么改成大写,并且"跳" xx 次;
如果这个字母是大写,那么改成小写,并且"跳" xx 次。
"跳"的意思是,往后移动字母,如果移动到了z或Z,那么下一次移动就从a或A开始。例如:把B"跳" 1010 次,结果就是L;把z跳 11 次,结果就是a。 输入描述:
第一行,三个数 n,m,xn,m,x,意思如题目所说。
接下来 nn 行,每行 mm 个字符,中间无空格。 输出描述:
nn 行,每行 mm 个字符,中间无空格。 输入样例:
3 2 3 Ab Bf xZ
输出样例:
dE eI Ac
数据范围:
1≤n,m≤1001≤n,m≤100
0≤x≤250≤x≤25
#include<iostream>
#include<cstring>
char a[110][110];
using namespace std;
int main()
{
int n,m,x;
cin>>n>>m>>x;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
if(a[i][j]>='a'&&a[i][j]<='z')
{
a[i][j]-=32;
a[i][j]+=x;
while(a[i][j]>'Z')
{
a[i][j]-=26;
}
}
else if(a[i][j]>='A'&&a[i][j]<='Z')
{
a[i][j]+=32;
a[i][j]+=x;
while(a[i][j]>'z')
{
a[i][j]-=26;
}
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j];
cout<<endl;
}
return 0;
}
只有1个测试点过了!