切换到宽版
  • 8525阅读
  • 8回复

读入三个不同的数,编程按由小到大的顺序排列打印出来 [复制链接]

上一主题 下一主题
离线stevenjl
 

只看楼主 倒序阅读 0 发表于: 2005-12-25

解:设读入的三个数为a,b,c,为了把较小的数排在前面,可作如下处理:


   ① 如果a>b就交换a、b的值,将较大的值换至后面;


   ② 如果a>c就交换a、c的值,将较大的值换至后面;


   ③ 如果b>c就交换b、c的值,将较大的值换至后面;


   ④ 输出处理后的a,b,c。


    Pascal程序:


    Program  Exam22;


    Var a,b,c,t: Real;


    Begin


        Write(''Input a, b,c='');


        Readln(a,b,c);


        if a>b then


begin                    {复合语句}


             t:=a; a:=b; b:=t       {交换a,b}


           end;


        if a>c then


begin                    {复合语句}


             t:=a; a:=c; c:=t        {交换a,c}


           end;


        if b>c then


begin                   {复合语句}


              t:=b; b:=c; c:=t         {交换b,c}


            end;


        Writeln('a,b,c:',a:6, b:6, c:6);


        Readln


    End.

Dream Walker...
离线archimedes

只看该作者 1 发表于: 2005-12-26
太麻烦了!还有几点错误!
1. 不是progranm而是program
2. PASCAL的字符串用单引号而不用双引号!!
这样多好
program Exam22;
var x:array[1..3]of real; a,b,c,t:real; i,j:integer;
begin
write('Input a,b,c=');
readln(a,b,c);
for i:=1 to 3 do
  for j:=i+1 to 3 do
    if x>x[j] then begin t:=x; x:=x[j]; x[j]:=t end;     {冒泡排序}
writeln('a,b,c:',x[1]:6,x[2]:6,x[3]:6);
end.
离线stevenjl

只看该作者 2 发表于: 2005-12-27
这个错误是我的疏忽
但是这个是要教学新高一的同学的,算法不应该太复杂……所以……
还是谢谢……
Dream Walker...
离线oifans
只看该作者 3 发表于: 2006-07-07
3个数用冒泡是不是有点浪费啊!~
 郁闷啊...
教新生还是简单的好啊!``
离线johnson
只看该作者 4 发表于: 2006-08-17
引用第3楼oifans于2006-07-07 21:00发表的“”:
3个数用冒泡是不是有点浪费啊!~
 郁闷啊...
教新生还是简单的好啊!``
离线鹤舞白沙
只看该作者 5 发表于: 2006-10-04
用冒泡还不如用快排
1 2 5 4 3 2
1 2 5 一份
4 3 2一份
1和4比小的替换到前面
。
。
。
。
离线鹤舞白沙
只看该作者 6 发表于: 2006-10-04
用冒泡还不如用快排
1 2 5 4 3 2
1 2 5 一份
4 3 2一份
1和4比小的替换到前面
。
。
。
。
离线lijianhet
只看该作者 7 发表于: 2006-10-15
main ()
{
int a,b,c,t;
if (a>b) {t=a;a=b;b=t;}
if (a>c) {t=a;a=c;c=t;}
if (b>c) {t=b;b=c;c=t;}
printf ("%d %d %d",a,b,c);
}
c语言
简单吧?
离线zw_archer
只看该作者 8 发表于: 2006-10-21
...
有学C的吗?
买《C程序设计(谭浩强)》(清华版的)(三版)
上面有详解
快速回复
限100 字节
 
上一个 下一个