怎么用c语言表示改变数的进制啊

1.输入任意一个整数,输出其对应的二进制的数的表示。
2.输入任意一个整数,输出其对应的二到九进制数的表示。

img


#define N "0123456789ABCDEF"
#include <stdio.h>
void change(int x,int n,char *p){
    char tmp[100];//临时存放转换数 
    int i,total=0;
    while(x){
        tmp[total++]=N[x%n];
        x/=n;
    }
    for(i=total-1;i>=0;i--){
        p[total-1-i]=tmp[i];
    }
    if(total==0){
        p[0]='0';
        p[1]=0;
    }
    else
    p[total-1-i]=0;
}
int main()
{
    char s[100];//用于存放转换的进制的数
    int i,x; 
    printf("把一个数转换成2 3 4 ... 9进制数\n");
    scanf("%d",&x);
    for(i=2;i<=9;i++){
        change(x,i,s);
        printf("转换成%d进制是:%s\n",i,s);
    }
}

1.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void decToBin(int n)//输入一个数15
{
    int result = 0;//结果
     int k = 1;
     int i = 0;
     while(n)//除到0就停止
     {
         i = n % 2;                    //余数i=1    //i=1        //i=1            //i=1
        result = k * i + result;    //result=1    //result=11    //result=111    //result=1111
        k = k * 10;                    //k=10        //k=100        //k=1000
        n = n / 2;                    //n=7        //n=3        //n=1            //n=0退出
     }
     printf("%d \n",result);//1111
}

int main() {
    int n;
    scanf("%d", &n);
    decToBin(n);
    }