网站如何做一张轮播图,网站建设误区图,十大最坑装修公司排名,wiki wordpress今天让我们来看看如何比较三个数的大小并且排列它们吧#xff0c;相信大家都有自己的思路#xff0c;今天我来和大家分享一下我在做这道题时的感悟。 第一种方法 首先根据题目要求#xff0c;我们需要先比较三个数#xff0c;之后对它们进行从大到小的一个输出#xff0c;… 今天让我们来看看如何比较三个数的大小并且排列它们吧相信大家都有自己的思路今天我来和大家分享一下我在做这道题时的感悟。 第一种方法 首先根据题目要求我们需要先比较三个数之后对它们进行从大到小的一个输出我们看看它有几种可能分别是x最大的xyzxzy和y最大的yxzyzx还有z最大的zxyzyx这就是所有数字的所有大小排序了我们首先看看第一种解法也是咋们在写代码的时候没有思路或者想不到思路时最容易使用的方法好像有个词叫暴力解法。 #define _CRT_SECURE_NO_WARNINGS
#includestdio.h
int main()
{int x, y, z;scanf(%d %d %d, x, y, z);//比较三个数字按照从大到小输出if (x yx z){if(yz)printf(%d %d %d, x,y,z);elseprintf(%d %d %d, x, z, y);}if (y x y z){if (z x)printf(%d %d %d, y, z, x);elseprintf(%d %d %d, y, x, z);}if (z y z x){if (x y)printf(%d %d %d, z ,x, y);elseprintf(%d %d %d, z, y, x);}return 0;
} 在这个代码中我们按照题目要求对每一种情况都进行输出得到那种结果就输出哪种结果但是我们在写的时候会发现这个代码好多步骤是不是冗余为什么我们每次得到结果都要输出一下呢我们对程序进行了改进。 第二种方法 #define _CRT_SECURE_NO_WARNINGS
#includestdio.h
//优化
int main()
{int x, y, z;scanf(%d %d %d, x, y, z);int tmp 0;//比较三个数字按照从大到小输出if (x y){tmp x;x y;y tmp;}if (xz){tmp x;x z;z tmp;}if (yz){tmp y;y z;z tmp;}printf(%d %d %d, x,y,z);return 0;
} 在这个代码中我们对三个数进行分析之后发现我们只需要找到最大数和最小数就好对它们进行排序最后那个数字放置在中间。 首先我们输入的是xyz输出也是xyz我们按照顺序输出的话我们就要保证x中的一定是最大值z中的一定是最小值只要我们保证这两个数字的位置正确那么这个程序题就没有问题。 那么当我们x中的值小的时候我们就需要将我们的最大值传给x比较小的那个传给另一个我们需要置换x中的值这里我们设置一个变量tmp用来临时存放我们在置换操作中需要拿出来的数。 大概是这个样子我们将x中的值给tmp之后将z的值给x最后将tmp的值给z这样就完成了一次置换。 第三种方法 #define _CRT_SECURE_NO_WARNINGS
#includestdio.h
void swap(int* px, int* py)
{int tmp 0;tmp *px;*px *py;*py tmp;
}
int main()
{int x, y, z;scanf(%d %d %d, x, y, z);//比较三个数字按照从大到小输出if (x y){swap(x, y);}if (x z){swap(x, z);}if (y z){swap(y, z);}printf(%d %d %d, x, y, z);return 0;
} 这里我们使用函数的方式解决问题将置换操作写为函数swap之后通过调用函数的方式来进行对xy或其他数字之间的置换。