回 帖 发 新 帖 刷新版面

主题:密码问题

输入一个或多个个字母,程序输出字母的后第4个字母。
     如:输入A,输出D   输入BC输出EF.
          谢谢各位大虾不吝赐教。:-)   (请用pascal)
[fly]互相帮助   共同进步[/fly]

回复列表 (共25个回复)

沙发

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.

板凳

楼上的大哥请详细说明一下好吗?小弟不胜感激1

[img]A:\DDC648910896778094D1F9EFC221E38D.JPG.GIF[/img]

3 楼

s[i]:=chr(ord(s[i])+3);
ord是用来把字符转换成ASCII码的.而chr则是把ASCII码转换成字符的,
而且ABCD.......的ASCII码是顺序编排的,ASCII码+3就是
把字符向后推3位,再把它转换成字符存回原来的地方

4 楼

我的方法更好:

var
  c:char;
begin
  read(c);
  while c<>#13 do begin
    write(chr(ord(c)+3));
    read(c);
  end;
end.

5 楼

如果在屏幕上,一边读入一边输出,显然是不行D

6 楼

为什么不行啊???????

7 楼

本来应该是这样的

ABC
DEF

而你的程序如果在屏幕上是这样的:
ADBECF

8 楼

不知道各位又没想过
如果输入的字母是xyz
会是怎样?

9 楼

writeln是换行再写
我认为还是定义一个数据类型比较好

10 楼

var a:char;
begin
  readln(a);
  writeln(succ(succ(succ(a))))
end

不知这样行不行?

我来回复

您尚未登录,请登录后再回复。点此登录或注册