| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 872 人关注过本帖
标题:字母变密码
只看楼主 加入收藏
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
 问题点数:0 回复次数:13 
字母变密码

这个程序是书上的,它的作用是,输入一个字母,然后把它转化成其后的第四个字母!
其中W变成A,……z变成d,这样首尾相联,且区分大小写!

大家看看:我有一行想不明白:


#include"stdio.h"
main()
{ char c;
while(( c=getchar())!='\n')
{ if(( c>='a' && c<='z')||( c>='A' && c<='Z'))
{ c=c+4;
if( c>'z'||c>'Z'&&c<='Z'+4)c=c-26;
}
printf("%c",c);
}
getch();
return(0);
}

红色的那一行!IF ( c>'z'||c>'Z'&&c<='Z'+4)c=c-26它说这是字母在V或者V之后就转化成A--D
为什么呢?它明明写的是'Z'啊?
还有,为什么是减26呢?不是22呢?这一句到底怎么理解?

搜索更多相关主题的帖子: 字母 密码 
2007-07-20 22:48
totohack
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2007-7-15
收藏
得分:0 
建议你查一下ASCII码表

2007-07-21 09:34
zp_0409
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-6-4
收藏
得分:0 

感觉没有交叉的部分???

码表:
http://jszx.qdu.edu.cn/CWeb/book/f1.htm

2007-07-21 09:52
totohack
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2007-7-15
收藏
得分:0 
我看明白了,不好意思,我笨 [IMG]http://bbs.bc-cn.net/Skins/Default/emot/em03.gif[/IMG] !

abcdefghijklmnopqrstuvwxyz


if(( c>='a' && c<='z')||( c>='A' && c<='Z'))
{ c=c+4;
if( c>'z'||c>'Z'&&c<='Z'+4)c=c-26; //如果输入c是v(或V)之后的字母,c=c+4后,c就会超过z(或Z); -26,是因为有26个字母。
}
printf("%c",c);

顺便说一句:学编程,数学要好

2007-07-21 10:14
totohack
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2007-7-15
收藏
得分:0 
说得不好,见谅!

2007-07-21 10:15
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
得分:0 

废话!
我看的这本书后面就有A码表!你以为我没看过?
还有啊,你当我不知道英语字母有26个? 不用思考的吗?

你也不想一下!比如说输入的是:z,其A码多少?再减26是多少?查出来是多少?

2007-07-22 19:55
xiaotnai
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-6-8
收藏
得分:0 
我感觉你确实没有思考! 先+4 然后在-26
不就是你说的-22的意思吗 你是不是忘了他+4了

2007-07-23 19:24
xiaotnai
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-6-8
收藏
得分:0 
还有你对楼上帮你解答问题的朋友 说话的语气是不是有点不对哦
人家可是热心帮你哦! 我看他把题讲的满细的

2007-07-23 19:26
xingsou
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-7-24
收藏
得分:0 
如果刚输入的是v后面的,那么加4后便大于z了,当然要跟z比了,if( c>'z'||c>'Z'&&c<='Z'+4)c=c-26;
这个语句就是判断是否超过范围,因为有26个字母,看一下ASCII码是减26

╔───────────╗ │ミ愛上伱,我輸嘚徹底ミ │ ╚───────────╝
2007-07-25 18:18
xingsou
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-7-24
收藏
得分:0 
你也不想一下!比如说输入的是:z,其A码多少?再减26是多少?查出来是多少?

帮你做一下这道题目:如果输入z,A码是122。加4后是126,大于z的A码,要减26,
等于100,对应字母d

╔───────────╗ │ミ愛上伱,我輸嘚徹底ミ │ ╚───────────╝
2007-07-25 18:21
快速回复:字母变密码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030269 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved