C程序设计,任意输入一个英文字母,输出该字母的前驱和后继,并以此字母开始,将26个英文顺序输出。

大概的意思就是比如我输入c,前驱是b,后继是d。大致我写到这样,可是后面不会写了,另外有一个问题就是a的前驱应该是z,这该怎么实现,z的后继应该是a又该怎么实现。。求大神... 大概的意思就是比如我输入c,前驱是b,后继是d。
大致我写到这样,可是后面不会写了,另外有一个问题就是a的前驱应该是z,这该怎么实现,z的后继应该是a又该怎么实现。。
求大神指导!!

char ch,c1,c2;
printf("请输入一个字母:");
scanf("%c",&ch);
c1=ch-1;
c2=ch+1;
printf("该字母的前驱和后继分别为:%c,%c",c1,c2);
if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))
{
for(int i=0;i<=32;i++)
{
ch+=i;
}
}
展开
 我来答
听不清啊
高粉答主

推荐于2017-11-26 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
完整的程序如下 :
main()
{
char ch,c1,c2,i;
printf("a char:");
scanf("%c",&ch);
c1='a'+(ch-'a'+25)%26;
c2='a'+(ch-'a'+27)%26;
printf("该字母的前驱和后继分别为:%c,%c\n",c1,c2);
for(i=0;i<26;i++)
{
printf("%c ",ch);
if(ch=='z')ch='a';
else ch++;
}
printf("\n");
}
追问
大写条件要再加吗
追答
原来的程序只考虑小写字母,下面的程序已适应大小写:
main()
{
char ch,c1,c2,i,up;
printf("a char:");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z'){up=32; ch+=up;} //如是大写字母,先转为小写,再作好记录
else up=0;
c1='a'+(ch-'a'+25)%26-up; //-up用来还原大写或小写(小写时up为0)
c2='a'+(ch-'a'+27)%26-up;
printf("该字母的前驱和后继分别为:%c,%c\n",c1,c2);
for(i=0;i<26;i++)
{
printf("%c ",ch-up);
if(ch=='z')ch='a';
else ch++;
}
printf("\n");
}
White_MouseYBZ
2013-10-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6480万
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"//
void main(void){
unsigned char ch,ch1,ch2,i,x;
printf("Type a letter...\nch=");
while(1){
if((ch=getchar())>'@' && ch<'[' || ch>='a' && ch<='z') break;
printf("Error! redo...\n");
}
if((ch1=ch-1)<'A' || ch1<'a' && ch1>'Z')
ch1+=26;
if((ch2=ch+1)>'Z' && ch2<'a' || ch2>'z')
ch2-=26;
printf("The previous and the next is %c,%c.\n",ch1,ch2);
for(i=0;i<26;i++){
if((x=ch+i)>'Z' && x<'a' || x>'z')
x-=26;
printf("%c ",x);
}
printf("\b.\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HPEY651301458
2013-10-25 · TA获得超过195个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:108万
展开全部
只考虑小写字母:
#include <cstdio>

using namespace std;
int main()
{
char ch;
scanf("%c",&ch);
c1=(ch-'a'+25)%26+'a';
c2=(ch-'a'+27)%26+'a';//会有点难理解,自己试一试就好了。
printf("该字母的前驱和后继分别为:%c,%c",c1,c2);
for(int i=1;i<=26;++i)
{
printf("%c ",ch);
ch=(ch-'a'+27)%26+'a';
}
return(0);
}
追问
。大写怎办
追答
scanf("%c",&ch);
if(ch='a')
{
//小写字母的程序
}else{
//小写字母的程序中将所有的'a'改成'A'就好了
}
return(0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tyg910614
2013-10-25
知道答主
回答量:29
采纳率:0%
帮助的人:16万
展开全部
哥们你先试了再追问,前面2个人的程序不是都对的
追问
他们的小写可以实现前驱后继,其他我在试。但是大写不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式