请编写一个函数sortnum(int num),参数num是一个三位的整数,该函数将num的百位、十位和个位的数字进行重排,并返回由上述的三个数字组成的最大的三位数。 注意:部分源程序已存在文件test28_2.cpp中。 如输入456后,输出

admin2012-05-11  56

问题 请编写一个函数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循环嵌套中循环变量的取值情况。
转载请注明原文地址:https://kaotiyun.com/show/M7ID777K
0

最新回复(0)