c语言译密码问题,下面这个程序, if(c>='Z'&&c<='Z'+4||c>'z')这一句中,
c语言译密码问题,下面这个程序,if(c>='Z'&&c<='Z'+4||c>'z')这一句中,为什么是c>='Z',我感觉c>'Z'才是对的啊,不然的话V译成的就不是Z...
c语言译密码问题,下面这个程序, if(c>='Z'&&c<='Z'+4||c>'z')这一句中,为什么是c>='Z',我感觉 c>'Z'才是对的啊,不然的话V译成的就不是Z了啊
#include<stdio.h>
int main()
{
char c;
while((c=getchar())!='\n')
{
if(c>'A'&&c<'Z'||c>='a'&&c>'z')
{
c=c+4;
if(c>='Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
return 0;
} 展开
#include<stdio.h>
int main()
{
char c;
while((c=getchar())!='\n')
{
if(c>'A'&&c<'Z'||c>='a'&&c>'z')
{
c=c+4;
if(c>='Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
return 0;
} 展开
1个回答
2016-06-02
展开全部
if(c>='Z'&&c<='Z'+4||c>'z')
c=c-26;
我认为,应该是
if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;
题目握磨应该是对输入培好的英文字母加密,加密方法是向后移动4个字母,即把a变成e,并且循环变化,如z变成d。
这里的判段中斗断就是对转码后超过‘Z’和‘z’的字符修正。
所以你的理解是正确的。
c=c-26;
我认为,应该是
if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;
题目握磨应该是对输入培好的英文字母加密,加密方法是向后移动4个字母,即把a变成e,并且循环变化,如z变成d。
这里的判段中斗断就是对转码后超过‘Z’和‘z’的字符修正。
所以你的理解是正确的。
追问
可是c程序设计第四版教材上是这么写的啊
追答
不能全信书,哈工大的ACM教材第一页就有错。😜
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询