Free Pascal 中的一道题

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:29:57
输入a、b、c三个不同的书,将他们由大到小输出,编程怎么写

是a,b,c三个不同的数字吗?

var
t,a,b,c:integer;
begin
readln(a,b,c);
if (a>=b)and(b>=c) then begin writeln(a,b,c);exit end;
if (a>=c)and(c>=b) then begin writeln(a,c,b);exit end;
if (b>=a)and(a>=c) then begin writeln(b,a,c);exit end;
if (b>=c)and(c>=a) then begin writeln(b,c,a);exit end;
if (c>=a)and(a>=b) then begin writeln(c,a,b);exit end;
if (c>=b)and(b>=a) then begin writeln(c,b,a);exit end;
end.

一般化的方法,适用于10000以内的数据规模,而LZ问的规模很小,只有3
var
a : array[ 1..3 ] of longint ;
i , j , t : longint ;
begin
for i := 1 to 3 do
read( a[ i ] ) ;
for i := 1 to 2 do
for j := i + 1 to 3 do
if a[ i ] < a[ j ] then begin
t := a[ i ] ; a[ i ] := a[ j ]; a[ j ]:= t ;
end ;
for i := 1 to 3 do
write( a[ i ] ) ;
end .

或者针对数据规模较小的特点,直接比较
var
a , b