打印3个相邻字母

题目内容:

当用户输入一个英文字母后,程序能够按照字母表的顺序打印出3个相邻的字母,其中用户输入的字母在中间。

程序运行结果如下:

d

cde

这里假设字母表首尾两个字母是相连的。若输入字母Z,则程序输出YZA。

输入格式:

一个字母字符,可能为大写,也可能为小写。

输出格式:

连续3个字符,大小写不变。

输入样例:

d

输出样例:

cde
解题思路:首先我们要知道ASCLL码值A-65,Z-90,a-97,z-122,接着我们要对于这个题设计算法。

  1. 找出这个字母的前一个
  2. 找出这个字母的后一个
  3. 找出在A~Z,a-z之间存在的规律
    在那之后,我们不难发现a-z有26个字母,所以再找出前一个字母我们就可以写出
    m=(x-‘A’-1+26)%26+‘A’,同理后一个字母就是n=(x-‘A’+1)%26+‘A’,这是对大写字母的设计,小写也是如此,所以我们就可以写出
#include<iostream>
using namespace std;
int main()
{	
	char x,m,n;
	cin>>x;
	if(x>=65&&x<=90){
		m=(x-'A'-1+26)%26+'A';
		n=(x-'A'+1)%26+'A';
	}
	else{
		m=(x-'a'-1+26)%26+'a';
		n=(x-'a'+1)%26+'a';
	} 
	cout<<m<<x<<n<<endl;	
	return 0;
}
发布了8 篇原创文章 · 获赞 0 · 访问量 190

猜你喜欢

转载自blog.csdn.net/m0_45888132/article/details/104609474