讨论 / 为何输出过长呐,郁闷
dong 2010-11-18 04:03:00
点我顶贴 收藏 删除
program unfold;

var

p1,p2,p3,m,a,b,i:longint;

s:ansistring;

procedure f1(a,b:longint);

var k,j:longint;

begin

if (p1=3) then for k:=a+1 to b-1 do for j:=1to p2 do write (’*’);

if (p1<>3) then

begin

if (p1=1) and (a>=65)and(a<=90)and(b>=65)and(b<=90)

then begin a:=a+32; b:=b+32; end;

if (p1=2) and (a>=97)and(a<=122)and(b>=97)and(a<=122)

then begin a:=a-32; b:=b-32; end;

for k:=a+1 to b-1 do

for j:=1to p2 do write(chr(k));

end;

end;

procedure f2(a,b:longint);

var k,j:longint;

begin

if (p1=3) then for k:=b-1 downto a+1 do for j:=1to p2 do write (’*’);

if (p1<>3) then

begin

if (p1=1) and (a>=65)and(a<=90)and(b>=65)and(b<=90)

then begin a:=a+32; b:=b+32; end;

if (p1=2) and (a>=97)and(a<=122)and(b>=97)and(a<=122)

then begin a:=a-32; b:=b-32; end;

for k:=b-1 downto a+1 do

for j:=1to p2 do write(chr(k));

end;

end;

procedure f(a,b:longint);

var k:longint;

begin

if a+1<>b then

begin

if(a>=b) then write(’-’)

else case p3 of 1 : f1(a,b);

2 : f2(a,b);

end; end;

end;

begin

readln(p1,p2,p3);

readln(s);

m:=length(s);

write(s[1]);

for i:=2 to m-1 do

if (s[i]=’-’)

then begin

a:=ord(s[i-1]);

b:=ord(s[i+1]);

f(a,b);

end

else write(s[i]);

write(s[m]);

end.

#1 SunFrank@2010-11-18 04:03:00
回复 删除
回复 楼主dong 的帖子

'-'左右连接的可能类似‘4-a'的东西

查看更多回复
提交回复