请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中定义了BaseX类(X进制整数类),其中成员函数print输出该整数指定数制的表示形式。使用展转相除法,可从低位到高位逐位求出所需要的表示形式,例如,求十制数231的四进制表示形

admin2019-06-05  28

问题 请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中定义了BaseX类(X进制整数类),其中成员函数print输出该整数指定数制的表示形式。使用展转相除法,可从低位到高位逐位求出所需要的表示形式,例如,求十制数231的四进制表示形式,方法如下:
231/4=57……3
57/4=14……1
14/4=3……2
结果是:3213
在main函数中给出了一组测试数据,正确的输出是:2001
注意:只需在//**********333**********和//**********666**********,之间填入所编写的若干语句,不要改动程序中的其他内容。
#include
#include
#include”BaseX.h”
using namespace std;
BaseX::BaseX(int n)(
thiS一>num=n;
}
BaseX::一BaseX(){)
void BaseX::print(int x){  //输出整数num的X进制表示形式
int arr[1 00];  //存放转换结果,arr[0]存放最低位
int index=0;  //当前数组arr中元素的个数
//**********333**********
//**********666**********
for(int i=、index一1;i>=0;
i—一){  //从高位到低位输出所需表示形式
cout<
}
cout<  }
  int main(){
BaseX b(12 9);
b.print(4);
writeToFile(”C:\\test\、.-),
return 0;
  }
  //proj3\BaseX.h
  class BaseX{
int num;
public:
BaseX(int n);
一BaseX();
void print《int x);
  };
  void writeToFile(const char*path);

选项

答案while(aura) { art[index++]=num%x; Bum/=x; }

解析 主要考查将一个数转化为x进制,使用辗转相除法来处理。
【解题思路】
将一个数转化为x进制,使用辗转相除法,将余数放在arr[]数组中,对商继续使用辗转相除法来处理,直到商为0。
最后反向输出数组中的值,即为x进制的数。
转载请注明原文地址:https://kaotiyun.com/show/2m8p777K
0

最新回复(0)