课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目4】数组用于进制转换:编一个程序,其中调用函数voidtran(intn,intd)用于将十进制数n转换为d进制数输出,并输出d进制数中最大位值是多少,在第几位。d的取值在2-32之间,数制d超过10时,依次用ABC...代表其基本符号,如对17进制而言,G代表其最大符号,对应十进制的16。
提示:用递归函数完成十进制向d进制的转换是需要掌握的,但对于本题而言,由于要在转换后的各位数上进行查找,建议用数组存放转换后的各位数值。右边是运行示例:
参考解答:
#include <iostream>
using namespace std;
void tran(int n, int d);
int main()
{
tran(1000, 8);
tran(1000, 24);
tran(1000, 2);
return 0;
}
void tran(int n, int d)
{
int k,a[100],m=0,max,i;
k=n;
//下面完成对n(即k)的进制转换
while(k>0)
{
a[m++]=k%d;
k/=d;
}
//由于k用作了n的替身,n在这时还能得以保证其原值
//转换完的d进制数有m位
//输出d进制数,同一循环中求各位中的最大值
max=0;
cout<<n<<"转换为"<<d<<"进制数为:";
for(i=m-1; i>=0; i--)
{
if(a[i]<10)
cout<<a[i];
else
cout<<char('A'+a[i]-10);
if(max<a[i]) max=a[i];
}
cout<<endl;
//下面的循环输出第几位上出现了max
cout<<"各位数中的最大值是 " << ((max<10)?char('0'+max):char('A'+max-10)) << ",出现在第 ";
for(i=m-1; i>=0; i--)
{
if(a[i]==max)
cout<<m-i<<' '; //i=m-1时, m-i为1,第1位即最大,依此类推
}
cout <<"位上。"<<endl;
}
分享到:
相关推荐
第4章创建动态数组 35.第4章新旧代码的兼容 36.第4章多维数 37.第5章算术操作符 38.第5章关系操作符和逻辑操作符 39.第5章位操作符 40.第5章赋值操作符 41.第5章自增和自减操作符 42.第5章箭头操作...
标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。 C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和...
第1章 C++的初步知识 *1.1 从C到C++ *1.2 最简单的C++程序 1.3 C++程序的构成和书写形式 1.4 C++程序的编写和实现 1.5 关于C++上机实践 习题 第2章 数据类型与表达式 2.1 C++的数据类型 2.2 常量 ...
第17章 虚函数与多态性 17.1 虚函数 17.2 继承虚属性 17.3 虚函数是分层的 17.4 纯虚函数 17.5 使用虚函数 17.6 早期绑定与后期绑定 第18章 模板 18.1 通用函数 18.2 应用通用函数 18.3 通用类 18.4 关键字typename...
第1章 C++的初步知识 *1.1 从C到C++ *1.2 最简单的C++程序 1.3 C++程序的构成和书写形式 1.4 C++程序的编写和实现 1.5 关于C++上机实践 习题 第2章 数据类型与表达式 2.1 C++的数据类型 2.2 常量 ...
第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 17.6 预处理指令#error和#pragma 17.7 运算符#和## 17.8 行号 17.9 预...
第4章 数组、字符串和指针 139 4.1 处理多个相同类型的数据值 139 4.1.1 数组 140 4.1.2 声明数组 140 4.1.3 初始化数组 143 4.1.4 字符数组和字符串处理 144 4.1.5 多维数组 147 4.2 间接数据访问 150 ...
第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 17.6 预处理指令#error和#pragma 17.7 运算符#和## 17.8 行号 17.9 预...
数组习题(3):完成十进制数转成为二进制数 71%(2795/3951) 30% 2020-4-23 1043 函数习题(8):递归方法求n阶勒让德多项式的值 63%(1671/2652) 38% 2020-4-23 1044 函数习题(9):分解一个整数的所有素数因子 71%(2321/...
7、 编写一个程序,将10进制数转换为其它(2-9)进制数。可以将要转换的数重复除以基数,然后讲除的余数按反方向排列来实现; 8、 已知A[n]为正数数组,试写出实现下列运算的递归算法; a. 求数组A中的...
1.3 编辑第一个程序 4 1.4 处理错误 5 1.5 剖析一个简单的程序 6 1.5.1 注释 6 1.5.2 预处理指令 7 1.5.3 定义main()函数 7 1.5.4 关键字 8 1.5.5 函数体 8 1.5.6 输出信息 9 1.5.7 参数 10 1.5.8 控制符...
17.执行下面语句后,a和b的值分别为( b )。 int a = 5,b = 3,t; int &ra = a; int &rb = b; t = ra;ra = rb;rb = t; (a) 3和3 (b) 3和5 (c) 5和3 (d) 5和5 18. 在下列运算符中,( d )优先级...