关于c语言中的分支结构

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:54:30
#include<stdio.h>
main()
{
int a,b,c,d,e;
printf("please input four numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b) {e=a;a=b;b=e;}
if(b>c) {e=b;b=c;c=e;}
if(c>d) {e=c;c=d;d=e;}
if(a>b) {e=a;a=b;b=e;}

if(b>c) {e=b;b=c;c=e;}
if(a>b) {e=a;a=b;b=e;}
printf("the result from small to big:%d,%d,%d,%d\n",a,b,c,d);
}这个程序是怎样判断四个数的大小的;我不大清楚这个过程。请高手解释一下:谢谢!

1。将ab的最大值给b
2。将abc间的最大值给c
3。将abcd间的最大值给d
4。将执行上述步骤后,将ab的最大值给b
5。将执行上述步骤后,将abc的最大值给c
6。将执行上述步骤后,将ab的最大值给b
7。依次输出调整后abcd即为从小到大的顺序

程序执行完if(a>b),if(b>c),if(c>d),三个语句就是找出abcd中最大值放在d中。
然后在执行if(a>b) ,if(b>c),就值再找出abc中最大值给c。
最后if(a>b)就是让b存放ab中的较大值。
这样就实现了4个数的由小到大的排序了。

建议你去看下<算法与数据结构--C语言>
这个程序 简单的说 是采用的换位法
关键在于变量e 上面
abcd只是在内存中分配的空间的名字
因为输入内存中的abcd本身就一个顺序的概念
上面的程序主要就是把最大数字赋给a第二大的给b依次类推

程序执行完if(a>b),if(b>c),if(c>d),三个语句就是找出abcd中最大值放在d中。
然后在执行if(a>b) ,if(b>c),就值再找出abc中最大值给c。
最后if(a>b)就是让b存放ab中的较大值。
这样就实现了4个数的由小到大的排序了。

这个啊就是我给你举个例子就明白了。比如我输入的是a=2,b=6,c=3,d=8
那么a>b不执行就执行下一个,b>c是符合条件的就执行,那么就将b,c的值换一下,现在b=3,c=6了,那么c=6再与d=8比较,不满足所以不执行。现在看啊
a=2,b=3,c=6,d=8了,b>c不成立不执行,a>b也不执行,所以这样就做起来了,你可以一步步看看,用其他的数字也是一样的