星空恐惧症最怕的图:关于C语言的

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 21:05:30
#include<stdio.h>
main()
{
char c;
whlie((c=getchar())!='\n')
{
if((c>='a'&&c<='z') 11 (c>='A'&&c<='Z'))
{c=c+4;
if(c>'Z'&&c<='Z'+4 11 c>'Z')c=c-26;
}
printf("%c"),c);
}
}
上面是一个关于译密码的问题,按照以下规律写的上面的程序,将字母A变成字母E,a变成e,既变成其后的第四个字母
if(c>'Z'&&c<='Z'+4 11 c>'Z')c=c-26;这段本人看不懂,高手能给详细解释下吗?谢谢啊

if(c>'Z'&&c<='Z'+4 ||c>'z')c=c-26就是这个字符加4以后如果超过了最后字符就回到前面去。例如原来是字符‘Y’,‘Y’加4后(89+4=93) 超过‘Z’就不符合题意了,这时减26回到前面去为67是字符‘C’

如果(C大于90、并且C小于94,或者 C大于90),则C=C-26;

你把||看成了11,当然看不懂了。

怎么 )后面没有;

这段代码有问题,在TC里根本运行不了

1、是||,不是11。||是逻辑或运算符。
2、每个字母变成其后的第四个字母,那w,x,y,z就变成什么呢,应该变成a,b,c,d,所以要减去26,变成a,b,c,d.

应该是if((c>\'Z\'&&c<=\'Z\'+4) || c>\'z\')注意最后一个z是小写的