很简单呀!在草稿纸上写上三个数比如:7、9、8.
第一个IF表示:前两个数字比较,小的排前面;此处7、9不满足IF,不执行IF语句;
第二个IF表示:后两个数字比较,小的排前面;此处9、8满足IF,执行IF语句;交换位置变成7、8、9。d在程序里只是起到一个暂时存储数据的作用。
第三个IF表示:(如果执行IF,生成的新序列)头尾两个数字比较,小的排前面;此处7、9不满足条件,不执行IF 语句。
最后输出这个生成序列的中间数,也就是由7、9、8生成的7、8、9中的中间数8
if(a {
d=a; //d=a=9;
a=b; //a=b=8;
b=d; //b=d=9
}
//a=8;b=9;c=7
if(b
d=b;
b=c;
c=d;
}
//a=8;b=7;c=9
if(a {
d=a;
a=b;
b=d;
}
//a=7;b=8;c=9
这可以看作冒泡排序,
排序后3个数按 从大到小 排列, 所以b是中间数
#include
int main()
{
int a,b,c,d;
scanf("%d %d %d",&a,&b,&c);
if(a {
d=a;a=b;b=d;
}
if(b{
d=b;b=c;c=d;
}
if(a {
d=a;a=b;b=d;
}
printf("%d",b);
return 0;
}
3个if都为假,最终结果是9,8,7按从大到小排列,所以输出8
单步运行调试一下就知道了