#include <iostream>
#include <cstdio>
using namespace std;
// ch [A,Z]
void Dis3Alp(char ch,int n)
{
for(int i=0;i<n;++i)
{
printf("%c", ( (ch-'A')+i )%26 + 'A' );
}
puts("");
}
int main()
{
char inc;
while(scanf("%c",&inc)==1)
{
Dis3Alp(inc,3);
}
return 0;
}
追问题目内容:
当用户输入一个英文字母后,程序能够按照字母表的顺序打印出3个相邻的字母,其中用户输入的字母在中间。
程序运行结果如下:
d
cde
这里假设字母表首尾两个字母是相连的。若输入字母Z,则程序输出YZA。
输入格式:
一个字符
输出格式:
连续3个字符
输入样例:
d
输出样例:
cde
追答#include <iostream>
#include <cstdio>
using namespace std;
// ch [A,Z]
//void Dis3Alp(char ch,int n)
//{
// for(int i=0;i<n;++i)
// {
// printf("%c", ( (ch-'A')+i )%26 + 'A' );
// }
// puts("");
//}
// ch [a,z]
void Dis3Alp2(char ch,int n)
{
for(int i=0;i<n;++i)
{
printf("%c", ( (ch-1-'a'+26)%26+i )%26 + 'a' );
}
puts("\0");
}
int main()
{
char inc='\0';
while(scanf("%c",&inc)==1)
{
if(inc<'a' || inc > 'z')
continue;
//Dis3Alp(inc,3);
Dis3Alp2(inc,3);
}
return 0;
}
PS : a=>zab