任意进制转换

2020-05-24  本文已影响0人  itime

输入数字n和相应的进制,输出n对应的k进制数

#include <stdio.h>
#define MAX 100
int a[MAX];
int converse(int n,int k){
    a[0]=n;
    register int i=0,j;
    while (n>=k) {
        a[i]=n%k;i++;n=n/k;if (n<k)a[i]=n;
    }
    a[i+1]='\0';
    if (k>10) {
        for (j=i;j>=0;j--){
            if (a[j]>9){
                a[j]+=55;
                //printf("%c ",a[j]+55);
            } else{
                a[j]+=48;
                //printf("%c ",a[j]+48);
            }
        }
    }else {
        for (j=i;j>=0;j--){
            a[j]+=48;
            //printf("%c ",a[j]+48);
        }
    }
    return i+1;
}
int main(){
    int n,k,i; int star;
    while (scanf("%d%d",&n,&k)!=EOF){
        star=converse(n,k);
        for (i=star-1;a[i]!='\0';i--)
        {
            printf("%c",a[i]);
        }
        printf("\n");
    }
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读