请编写一个函数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 [C] , i, j, temp;
for (i=0; i<C; i++)
{
number [i] =num%A0;
num=num/A0;
}
for (i=0;i<B ;i++)
{
for (j=i+A; j<C;j++)
if (number[j]<=number[i])
{
temp=number [j];
number [j] =number [i];
number [i] =temp;
}
}
num=number [B] *A00+number [A]*A0+number[0];
return num;
}
解析:
本题除考查考生对基本控制结构和数组访问的熟练程度外,还考查了考生根据实际需要,建立模型,对数字进行排序的能力,答案中所示时是冒泡排序法。请注意程序中数组下标的范围和两层for循环嵌套中循环变量的取值情况。