c语言大小写字母互换

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:30:52
输入一个大写字母,输出字母表中它前面的字母和后面的字母。如果输入的字母为A或Z,则分别输出提示信息“没有前面的字母”或“没有后面的字母”
下面是我做的,帮我指出错误之处
#include <stdio.h>
main()
{
char c1;

scanf("%c",&c1);

if(c1>64&&c1<92)
printf("%c%c",c1+1,c1-1);

else if(c1==65)
printf("没有后面的字母");
printf(" %c\n",ch+1);

else if(c1==91)

printf("没有前面的字母");
printf(" %c\n",ch-1);

1.else if的控制范围不对
2.为了防止记错,最好不要直接用ACSII码值代入
3.代码中最后缺一个}

#include <stdio.h>
main()
{
char c1;

scanf("%c",&c1);

if(c1>='A'&&c1<='Z')
printf("%c %c",c1+1,c1-1);

else if(c1=='Z') //没有前面字母的是Z,而不是65对应的A
{
printf("没有后面的字母");
printf(" %c\n",ch+1);
}

else if(c1=='A') //没有前面字母的是A,而不是90对应的Z
{
printf("没有前面的字母");
printf(" %c\n",ch-1);
}
}

Z的ASCII码是90不是92

其他的逻辑关系没有错误。

if(c1>65&&c1<90)
{
    printf("%c %c",c1+1,c1-1);
}
else if(c1==65)
{
    printf("没有前面的字母 ");
    printf(" %c\n",ch+1);
}
else if(c1==90)
{
    printf(" %c\n",ch-1