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

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

#include <iostream>
#include <cctype>
int main()
{
using namespace std;
char ch,ch1,ch2;
cout << "Enter a character: ";
cin >> ch;
ch = toupper(ch);
if (ch == 'A')
{
ch1 = 'Z';
ch2 = 'B';
}
else if (ch == 'Z')
{
ch1 = 'Y';
ch2 = 'A';
}
else
{
ch1 = char((int)ch - 1);
ch2 = char((int)ch + 1);
}
cout << ch1 << ch << ch2 << endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-24
#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 

第2个回答  2019-03-03
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char shuru,zhuanhuan,A_a;
cin>>shuru;
if(shuru>='A'&&shuru<='Z')
   A_a='A';
else
   A_a='a';
for(int i=0;i<3;i++)
{
zhuanhuan=((shuru-1-A_a+26)%26+i)%26+A_a;
cout<<zhuanhuan;
}
return 0;
}

第3个回答  2023-12-21
#include<iostream>

using namespace std;

int main()

{

char c;

cout << "输入一个大写字母,将打出另外两个与之相连的大写字母:";

cin >> c;

if (c > 65 && c < 90)

cout << char(int(c) - 1) << c << char(int(c) + 1) << endl;

else if (c == 65)

cout << "ZAB" << endl;

else

cout << "YZA" << endl;

return 0;

}
第4个回答  2018-04-18
#include<iostream>
using namespace std;
int main()
{
while (1)
{
char ch,ch1,ch2;//定义字符串
cin>>ch;
//下面一连串是判断azAZ等特殊情况的
if (ch == 'A' || ch=='a')
{
if(ch=='A')
{
ch1 = 'Z';
ch2 = 'B';
}
else
{
ch1='z';
ch2='b';
}
cout<<ch1<<ch<<ch2;
}
else if (ch == 'Z' || ch =='z')
{
if(ch=='Z')
{
ch1 = 'Y';
ch2 = 'A';
}
else
{
ch1='y';
ch2='a';
}
cout<<ch1<<ch<<ch2;
}
else
{
--ch;
for(int n=1;n<=3;n++)
//依次递增字符[字母]ascll码
{
cout<<ch;
ch++;
//字符自增
}
}

cout<<'\n';//换行符
}
return 0;
}
相似回答