C语言求教,进制转换代码

毕设项目助手 毕业设计 1

请大家帮我看看我的程序有什么错误,感激不尽!

/*
num:数字  i:进制数   k:总位数 
*/
#include"stdio.h"
#include"math.h"
int firsttext(int num,int i){
    int k;
for(k=1;;k++){
              if(num<((int)pow((float)i,(float)k)))
              break;
              }
              --k;
              return k;
              }
int printoutevery(int num,int i,int k){
    int a;
    if(k=0)
    {return 0;}
    for(a=1;;a++){
                  if(num<((int)pow((float)i,(float)k)))
                  break;
                  }
    a--;k--;
    num-=(int)pow((float)i,(float)a);
    if(a<10)
    printf("%d",a);
    else printf("%c",a+55);
    printoutevery(num,i,k);
}
int main(){
    int num,i,k;
    printf("请输入待处理数(十进制):");
    scanf("%d",&num);
    printf("请输入您要转换的进制:");
    scanf("%d",&i);
    k=firsttext(num,i);
    printoutevery(num,i,k);
    getchar();
    return 0;
}

回复

共3条回复 我来回复
  • 代码助手
    这个人很懒,什么都没有留下~
    评论
    /*
    num:数字 i:进制数 k:总位数
    */
    #include "stdio.h"#include "math.h"int firsttext(int num, int i) {
        int k;
        for (k = 1;; k++) {
            if (num < ((int) pow((float) i, (float) k))) //i的k次方
            break;
        }
        //--k;
        return k;
    }
    int printoutevery(int num, int i, int k) {
        int a;
        if (0 == k) //注意此处的写法
        {
            return 0;
        }
        a = num / (int) pow((float) i, (float)(k - 1));
        num -= a * (int) pow((float) i, (float)(k - 1));
        k--;
        if (a < 10) printf("%d", a);
        else printf("%c", a + 55);
        printoutevery(num, i, k);
    }
    int main() {
        int num,
        i,
        k;
        printf("Please input num at decimal notation:\n");
        scanf("%d", &num);
        printf("Please input scale you want to convert:\n");
        scanf("%d", &i);
        k = firsttext(num, i);
        printoutevery(num, i, k);
        getchar();
        return 0;
    }
    
    0条评论
  • 源码客栈
    这个人很懒,什么都没有留下~
    评论
    int printoutevery(int num,int i,int k){
        int a;
        if(k<0)
        {return 0;}
        //for(a=1;;a++){
        //  if(num<((int)pow((float)i,(float)a)))
        //      break;
        //}
    
        a = num / (int)pow((float)i,(float)k);
        num -= a * (int)pow((float)i,(float)k);
        k--;
        if(a<10)
            printf("%d",a);
        else printf("%c",a+55);
        printoutevery(num,i,k);
    }
    
    0条评论
  • 源码工厂
    这个人很懒,什么都没有留下~
    评论

    建议把

    include"stdio.h"

    include"math.h"

    改成

    include

    include

    0条评论

发表回复

登录后才能评论