解释一下这个C程序

来源:百度知道 编辑:UC知道 时间:2024/04/28 11:32:53
源程序如下:
# include <stdio.h>
void main()
{
char ch;
while ((ch=getchar())!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
ch=ch+4;
if(ch>'Z'&&ch<='Z'+4||ch>'z')
{
ch=ch-26;
}
}
printf("%c\n",ch);
}
}

帮忙解决下while内嵌语句 的算法 我有些弄不明白
比如说if(ch>'Z'&&ch<='Z'+4||ch>'z')
{
ch=ch-26;
}
万分感谢

# include <stdio.h>
void main()
{
char ch;
while ((ch=getchar())!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) /如果ch是字母就执行下面语句,否则跳过。
{
ch=ch+4; /ch+4,再赋值给ch,
if(ch>'Z'&&ch<='Z'+4||ch>'z') /这句的原意是想将大于‘Z’或‘z’的字母(即是在ch加4前,W,X,Y,Z,w,x,y,z这8个字母执行下面语句),
{
ch=ch-26;
}
}
printf("%c\n",ch);
}
}

如:
输入
tuvwxyz
则输出
x
y
z
a
b
c
d
明白了吗?不明就Hi我吧