数组用于进制转换

来源:互联网 发布:潍坊行知学校新地址 编辑:程序博客网 时间:2024/05/17 22:56
编一个程序,其中调用函数void tran(int n, int d)用于将十进制数n转换为d进制数输出,并输出d进制数中最大位值是多少,在第几位。d的取值在2-32之间,数制d超过10时,依次用ABC...代表其基本符号,如对17进制而言,G代表其最大符号,对应十进制的16

  提示:用递归函数完成十进制向d进制的转换是需要掌握的,但对于本题而言,由于要在转换后的各位数上进行查找,建议用数组存放转换后的各位数值。右边是运行示例:

#include<iostream>#include<iomanip>using namespace std;void tran(int n, int d);char a[32]="0123456789ABCDEFGHIJKLMNOPQRSTU";int main(){int n=1000;tran(n, 8);tran(n, 24);tran(n, 2);return 0;}void tran(int n, int d){int c[30];int i=0;cout<<n<<"转换为"<<setw(2)<<d<<"进制为: ";while(n){        c[i++]=n%d;    n=n/d;} int m=i-1;for(;i-1>=0;i--)        cout<<a[c[i-1]];cout<<endl;int max=c[0];    int num[30];for(int j=1;j<=m;j++)if (max<c[j]){max=c[j];}cout<<"各位中的最大值是"<<a[max]<<","<<"出现在第";for(int j=0;j<=m;j++)if (max==c[j])cout<<" "<<j+1<<"  ";cout<<"位上。。"<<endl;cout<<endl;}


0 0
原创粉丝点击