我是新手,有一道关于选择程序结构设计的题不会做,请大家来帮个忙
pascal吧
全部回复
仅看楼主
level 1
输入3个字母,按字母表顺序从小到大输出这3个字母。我想了半个小时都没有想出来,我是个新手,请大家来帮个忙
2005年08月03日 10点08分 1
level 1
我有一个解法可能比上面简单些,上面这个解法是正确的,但对于初学者来说难理解点,其实用ord()取序号这个函数就可以解这个问题,看看我这个:Program Demo;var a,b,c:char;//定义三个变量 temp:char;//定义一个中间变量begin readln(a,b,c); if ord(a)>ord(b) then begin temp:=a; a:=b; b:=temp; end; else if ord(b)>ord(c) then begin temp:=c; b:=c; c:=temp; end; writeln(a,b,c);end.
2005年08月15日 01点08分 3
level 0
> 其实用ord()取序号这个函数不必用ord(), 直接写 if a > b then 就可以而且program Demo有文法和结构错误...Program DemoC;var a,b,c:char;//定义三个变量 temp:char;//定义一个中间变量beginreadln(a,b,c);if a > b then begin temp:=a; a:=b; b:=temp;end;if b > c then begin temp:=c; b:=c; c:=temp;end;if a > b then begin //不重检的话出现的反例输入: b c a temp:=a; a:=b; b:=temp;end;writeln(a,b,c);end.
2005年08月15日 13点08分 4
level 1
楼上的真郁闷,不说几百个几千个字母,要是10个字母你怎么做?
2005年08月17日 05点08分 5
level 0
用STRING就可以了,N〈=255,最多255个字符Var Str1: String; n, i, j: Integer; temp: Char;Begin ReadLn(n); ReadLn(Str1); For i:=1 To n-1 Do For j:=i+1 To n Do If Str1[i] >Str[j] Then Begin temp := Str1[i]; Str1[i] := Str1[j]; Str1[j] := temp; End; Write(Str1); ReadLn;End.
2005年08月18日 02点08分 6
level 0
其实楼上的算法就是选择法排序。
2005年08月18日 03点08分 7
level 0
我就得还是用冒泡算法简单
2006年01月02日 14点01分 8
level 1
快排
procedure qsort(l,r:longint);
var
ll,rr,mid:longint;
t:char;
begin
ll:=l;
rr:=r;
mid:=a[(ll+rr)div 2];
repeat
while a[ll]<mid do inc(ll);
while a[rr]>mid do dec(rr);
if ll<=rr then
    begin
     t:=a[ll];
     a[ll]:=a[rr];
     a[rr]:=t;
     inc(ll);
     dec(rr);
    end;
   until ll>rr;
if l<rr then qsort(l,rr);
if ll<r then qsort(rr,l);
end;
begin
for i:=1 to 3 do
read(a[i]);
qsort(1,3);
for i:=1 to 3 do
write(a[i]);
end.
//直接在网页上写的,没编译可能有错但不会差太大。排序一定要掌握快速排序,更加好用,更快。此题只有3个数据,用快排有点小题大做,而且比较慢,但推荐你学一下。理解起来有点困难,加油吧。上网搜一下

2010年10月22日 23点10分 9
level 1
好强,看不懂。
2010年10月23日 13点10分 11
level 4
你们全是高手!一个用数组,一个把程序编那么长,大材小用,
2014年02月12日 13点02分 12
level 4
program lx1;
var a,b,c,d:byte;
begin
read(a,b,c);
if (ord(a)) < (ord(b)) then d:=a else d:=b;
if (ord(d )) < (ord(c)) then write(d) else write(c);
write(d);
if (ord(a)) < (ord(b)) then write(b) else write(a);
end.
2014年02月12日 13点02分 13
1