题目要求:
对一个五位的任意整数,求出琦降序数
算法提示:将整数的每一位分离到一维整形数组中,再将数组a的元素按照降序排列,最后输出数组元素值,
试建立一个NUM类,完成上述操作
#include<iostream> using namespace std; class NUM { public: NUM(int x);//定义一个带参数的构造函数 void NUM_fengjie(); void NUM_paixu(); void NUM_display(); private: int a[5]; int n; }; NUM::NUM(int x) { int i; for(i = 0;i<5;i++) a[i] =0; n = x;//分解数值 } void NUM::NUM_fengjie() { int i=0,j; int x = n; while(x)//分解数值的算法 { a[i] = x%10; x = x/10; i++; } } void NUM::NUM_paixu() { for(int i = 0;i<5;i++)//冒泡法排序 for(int j = i;j<4;j++) { if(a[j]>a[j+1]) { int m; m = a[j]; a[j]= a[j+1]; a[j+1] = m; } } } void NUM::NUM_display() { for(int i = 0;i<5;i++) cout<<a[i]<<" "; } int main() { int x; cout <<"please input the num:"; cin >>x;//用户想输入的数值 NUM num(x);//初始化变量 num.NUM_fengjie(); num.NUM_paixu(); num.NUM_display(); return 0; }
程序调试中遇到的bug
错误:15行出现游离的‘ ,这个是程序输入时候多输入了 ’
错误:63是忘记打分号,错误45:是if语句中忘记输入()的一边
这个程序要学习的地方是
【1】带参数的构造函数,这个比较重要:构造函数可以携带参数,
比如程序中出现的 NUM(int x);因此在定义NULL num这类的时候
要变成 NULL num(5)初始化,
例如要想动态改变,可以初始化中加入变量,比如NULL num(x)
其中x由用户键盘输入
【2】构造函数不能被用户调用,因此构造函数中我还没发现有cin这东西,
大概是系统调用构造函数的时候是在创立对象的一瞬间,因此,在需要
人为改变对象中的数值的时候,往往采用方式【1】这样的做法
训练三:求任意整数的降序数
时间: 2024-10-28 15:59:46