天很蓝~ 2022-03-10 17:18 采纳率: 60%
浏览 35
已结题

十进制数m转化为任意进制数n,并将结果按位存入数组,使用数组进行输出

代码不采用数组可以得到正确结果,但采用数组不知道哪里表达不对,便会报错。请各位指正!
(每位的结果要依次存入数组,可以反序存,只需输出时结果为正序即可)

#include<stdio.h>
#include<math.h>

#define MAX 100
int main(){

/

    int a,n,base,i,j,num;
    int A[MAX];
    i = 0;
    base =1;
    A[0] = 0;
    printf("请输入待转换的十进制数:\n");
    scanf("%d",&a);
    printf("请输入要转换进制数:\n");
    scanf("%d",&n);

    while (a>0){
        A[i]= A[i] + base*(a%n);
        base = base*10;
        a = a/n;
        num = ++i;
    }
    
//   这样运行可以得到正确结果,但结果会只存在A[0]里,并非按位存储于数组中
//       while (a>0){
//        A[i]= A[i] + base*(a%n);
//        base = base*10;
//        a = a/n;
//    }
    
    
    for(j=num;j>=0;j--){
        printf("%d",A[j]);
    }
}


  • 写回答

2条回答 默认 最新

  • fuill 2022-03-10 19:05
    关注
    #include<stdio.h>
    #include<math.h>
     
    #define MAX 100
    int main(){
     
     
        int a,n,base,i,j,num=0;
        int A[MAX]={
            0
        };
        i = 0;
        base =1;
        A[0] = 0;
        printf("请输入待转换的十进制数:\n");
        scanf("%d",&a);
        printf("请输入要转换进制数:\n");
        scanf("%d",&n);
     
        while (a>0){
            A[i]= A[i] +(a%n);
            //base = base*10;
            a =a/n;
            num = ++i;
        }
        
    //   这样运行可以得到正确结果,但结果会只存在A[0]里,并非按位存储于数组中
    //       while (a>0){
    //        A[i]= A[i] + base*(a%n);
    //        base = base*10;
    //        a = a/n;
    //    }
        
        
        for(j=num-1;j>=0;j--){
            printf("%d",A[j]);
        }
    }
     
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月10日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀