主题:密码问题
天水
[专家分:320] 发布于 2005-08-18 21:37:00
输入一个或多个个字母,程序输出字母的后第4个字母。
如:输入A,输出D 输入BC输出EF.
谢谢各位大虾不吝赐教。:-) (请用pascal)
[fly]互相帮助 共同进步[/fly]
回复列表 (共25个回复)
沙发
林记 [专家分:1680] 发布于 2005-08-19 14:28:00
var
s:string;
i:integer;
begin
readln(s);
for i:=1 to length(s) do
s[i]:=chr(ord(s[i])+3);
writeln(s);
end.
板凳
天水 [专家分:320] 发布于 2005-08-21 22:14:00
楼上的大哥请详细说明一下好吗?小弟不胜感激1
[img]A:\DDC648910896778094D1F9EFC221E38D.JPG.GIF[/img]
3 楼
林记 [专家分:1680] 发布于 2005-08-22 16:24:00
s[i]:=chr(ord(s[i])+3);
ord是用来把字符转换成ASCII码的.而chr则是把ASCII码转换成字符的,
而且ABCD.......的ASCII码是顺序编排的,ASCII码+3就是
把字符向后推3位,再把它转换成字符存回原来的地方
4 楼
阿Ben [专家分:2200] 发布于 2005-08-24 00:05:00
我的方法更好:
var
c:char;
begin
read(c);
while c<>#13 do begin
write(chr(ord(c)+3));
read(c);
end;
end.
5 楼
林记 [专家分:1680] 发布于 2005-08-24 23:43:00
如果在屏幕上,一边读入一边输出,显然是不行D
6 楼
阿Ben [专家分:2200] 发布于 2005-08-26 20:20:00
为什么不行啊???????
7 楼
林记 [专家分:1680] 发布于 2005-08-26 21:11:00
本来应该是这样的
ABC
DEF
而你的程序如果在屏幕上是这样的:
ADBECF
8 楼
woohaha [专家分:120] 发布于 2005-08-27 12:49:00
不知道各位又没想过
如果输入的字母是xyz
会是怎样?
9 楼
hadewood [专家分:60] 发布于 2005-08-27 14:33:00
writeln是换行再写
我认为还是定义一个数据类型比较好
10 楼
dorremon1992 [专家分:870] 发布于 2005-08-27 20:25:00
var a:char;
begin
readln(a);
writeln(succ(succ(succ(a))))
end
不知这样行不行?
我来回复