https://www.runoob.com/cprogramming/c-exercise-example5.html
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
include <stdio.h>
int main()
{
int x,y,z,t;
printf("\n请输入三个数字:\n");
scanf("%d%d%d",&x,&y,&z);
if (x>y) { /交换x,y的值/
t=x;x=y;y=t;
}
if(x>z) { /交换x,z的值/
t=z;z=x;x=t;
}
if(y>z) { /交换z,y的值/
t=y;y=z;z=t;
}
printf("从小到大排序: %d %d %d\n",x,y,z);
}
以上实例输出结果为:
请输入三个数字:
1
3
2
从小到大排序: 1 2 3
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d:integer;
begin
//这就是个冒泡排序
a:=9; //随便进行三个参数的赋值
b:=8;
c:=7;
if a>b then
begin
d:=a; //如果a>b。就把a赋值给临时变量d,
a:=b; //然后把b赋值给a,
b:=d; //然后把d赋值给b,这样经过临时变量d后,就实现了a,b值的互换。 最后a=8 b=9
end;
if a>c then // 此时a=8 c=7 这段和底下那段不能互换,也不能缺失。否则会出错,这段表明联合上一段表明a和所有的比对对象循环做了一次彻底的比对。
begin
d:=a;
a:=c;
c:=d; //此时 a=7 c=8
end;
if b>c then //此时 b=9 c=8 这段不能缺失。否则会出错。表明按层,从顶到底和比对对象循环比对了一轮
begin
d:=b;
b:=c;
c:=d;
end; //此时 b=8 c=9
showmessage(inttostr(a)+inttostr(b)+inttostr(c));
end;
网友评论