问题 问答题

请编写一个函数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循环嵌套中循环变量的取值情况。

单项选择题
单项选择题