问答题 请编写一个函数sortnum(int num),参数num是一个三位的整数,该函数将num的百位、十位和个位的数字进行重排,并返回由上述的三个数字组成的最大的三位数。
注意:部分源程序已存在文件test28_2.cpp中。
如输入456后,输出结果如下:
654
请勿修改主函数main和其他函数中的任何内容,仅在函数sortnum的花括号中填写若干语句。
文件test28_2.cpp的内容如下:
#include<iostream.h>
int sortnum(int num)


void main()

int num;
int result=0;
cout <<“请输入一个三位数”;
cin>>num;
cout<<sortnum(num)<<end1;


【正确答案】
int sortnum(int num)
{
int number [3] , i, j, temp;
for (i=0; i<3; i++)
{
number [i] =num%10;
num=num/10;
}
for (i=0;i<2 ;i++)
{
for (j=i+1; j<3;j++)
if (number[j]<=number[i])
{
temp=number [j];
number [j] =number [i];
number [i] =temp;
}
}
num=number [2] *100+number [1]*10+number[0];
return num;
}
【答案解析】[解析] 本题除考查考生对基本控制结构和数组访问的熟练程度外,还考查了考生根据实际需要,建立模型,对数字进行排序的能力,答案中所示时是冒泡排序法。请注意程序中数组下标的范围和两层for循环嵌套中循环变量的取值情况。