练习 3-5 编写函数 itob(n, s, b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。例如,itob(n, s, 16)把整数n格式化成十六进制整数保存在s中。

按照“除n取余”的方法即可:

#include 

void itob(int n,char s[],int b);
void output(char s[]);

int main(){
    int n=100;
    char s[50];
    itob(n,s,16);
    output(s);
    itob(n,s,8);
    output(s);
    itob(n,s,4);
    output(s);
    itob(n,s,2);
    output(s);
    return 0;
}

void itob(int n,char s[],int b){
    int i=0;
    while(n!=0){
        s[i++]=n%b+'0';
        n/=b;
    }
    s[i--]='\0';
    for(int j=0;jchar temp=s[j];
        s[j]=s[i];
        s[i]=temp;
    }
}

void output(char s[]){
    for(int i=0;s[i]!='\0';++i){
        printf("%c",s[i]);
    }
    printf("\n");
}

输出结果如下,从上到下分别是16进制、8进制、4进制、2进制的结果,可以验证是正确的。
练习 3-5 编写函数 itob(n, s, b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。例如,itob(n, s, 16)把整数n格式化成十六进制整数保存在s中。_第1张图片

你可能感兴趣的:(C语言学习习题)