gdhub 2017-09-06 09:55 采纳率: 0%
浏览 1218

请教一道进制转换的C++题目思路与源码

请教一道C++题目思路与源码:输入K进制的正整数N,请把N化为L进制后输出。(N<1000000;L,K<=16) 有多组数据。 输入格式: K N L 输入样例: 8 10 2 10 10 16 输出样例: 1000 A

请问一下,这样做错在哪?
#include
int k,n,l,s,b[100],c,d;
char a[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main(){
while(scanf("%d%d%d",&k,&n,&l)){
c=s=0;
d=1;
while(n){
s=s+n%10*d;
n/=10;
d*=k;
}
while(s){
b[++c]=s%l;
s/=l;
}
for(int i=c;i>0;i--)printf("%c",a[b[i]]);
printf("\n");
}
}

  • 写回答

3条回答

  • 关注

    用栈的思想可以解决进制转换的问。
    算法如下(以十进制转换为二进制为例):
    void conversion(){
    InitStack(S); // 构造栈
    scanf("%d",N);
    while(N){
    Push(S,N%2);
    N=N/2;
    }

            while(!StackEmpty(S)){
                Pop(S,e);
                printf("%d",e);
            }
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 请求分析基于spring boot+vue的前后端分离的项目
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?