2301_81414091 2023-11-26 15:18 采纳率: 0%
浏览 64

输入一个十进制数,输出相应的八进制数和十六进制数。

img

img


输入一个十进制数,输出相应的八进制数和十六进制数。大一c语言作业

  • 写回答

3条回答 默认 最新

  • yellow1019 2023-11-26 15:23
    关注

    代码如下:

    #include<stdio.h>
    int b(int n);//表示八进制
    int s(int n);//表示十六进制
    int main()
    {
        int n;
        scanf("%d",&n);//输入一个十进制数字
        b(n);//通过b函数输出十进制n对应的8进制
        printf("\n");
        s(n);//通过b函数输出十进制n对应的8进制
        return 0;
    }
    int b(int n)//用于输出八进制
    {
        int a[99];//存放8进制的各个位数的数字
        int i=0;
        while(n>7)//如果n大于7退出训话
        {
            a[i]=n%8;
            i++;
            n=n/8;
        }
        a[i]=n;//将退出循环时n<7的n的值放入数组中
        for(;i>=0;i--)
        printf("%d",a[i]);//逆序输出
    }
    int s(int n)
    {
        int a[99],i=0;//数组a用于存储十六进制的每位数字
        char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    //c代表十六进制从1--16每个数字对应的字符
        while(n>15)
        {
            a[i]=n%16;
            i++;
            n=n/16;
        }
        a[i]=n;//将退出循环时n<16的n的值放入数组中
        for(;i>=0;i--)
        printf("%c",c[a[i]]);
    }
    

    输入数据测试:

    18//输入18
    
    22//18对应的八进制
    12//18对应的十六进制
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月26日