应用题
使用VC++2010打开考生文件夹下“proj3”文件夹中的工程proj3.sln。阅读下列函数说明和代码。函数sort(int &m,int &n,int &l)实现将三个整数m、n、l由大到小输出。m最大,l最小。
程序分析:程序实现时,可以把最大的数放到m上,先将m与n进行比较,如果m<n则将m与n的值进行交换,然后再用m与l进行比较,如果m<l则将m与l的值进行交换,这样能使m最大。然后再将n与l进行比较,若n<l则将n与l的值互换,互换后则l最小。
将函数sort(int &m,int &n,int &l)补充完整,实现三个数的排序。
注意:请勿改动主函数。
#include <iostream.h>
void sort(int& m, int& n, int& l)
{
}
int main()
{
int x=9;
int y=13;
int z=-3;
sort(x,y,z);
cout<<x<<','<<y<<','<<z<<endl;
return 0;
}
【正确答案】int t; if (m<n) {t=m;m=n;n=t;)/*交换x,y的值*/ if (m<1) {t=m;m=l;l=t;}/*交换x,z的值*/ if (n<1) (t=n;n=1;1=t;)/*交换z,y的值*/
【答案解析】sort函数实现3个参数的从大到小的排序,可以采用很多方法来排序,比如选择法排序、冒泡法排序等,这里要求采用比较的方法来实现排序,由于需要排序的数据较少,只有3个,逐个比较就可以找到最大最值小进行排序。 (1)由审题分析可知,三次比较便可将m、n、l排序。 (2)在实现时,先将m与n进行比较,如果m<n则将m与n的值进行交换,然后再用m与l进行比较,如果m<l则将m与l的值进行交换,这样能使m最大。然后再将n与l进行比较,若n<l则将n与l的值互换,互换后则l最小,这样就得到m最大,l最小的排序结果。 (3)在sort函数内用三个if比较即可,条件成立则进行交换。