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

十进制数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 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥15 基于OPENCV的人脸识别
  • ¥20 51单片机学习中的问题
  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题
  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题