首页 > 代码库 > 训练三:求任意整数的降序数
训练三:求任意整数的降序数
题目要求:
对一个五位的任意整数,求出琦降序数
算法提示:将整数的每一位分离到一维整形数组中,再将数组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】这样的做法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。