Jimmy小站

小明也有大梦想 — 蒋明/铭
当前位置:网站首页 / C语言基础题 / 正文

6-2 编程题,数制转换

2015-08-30 / C语言基础题 / 2884 次围观 / 0 次吐槽

【问题描述】

输入一个十进制数,转换成对应的八进制数和十六进制数并输出。

【输入形式】

输入一个十进制数。

【输出形式】

输出对应的八进制数和十六进制数。

【样例输入1】(下划线部分为键盘输入,其余部分为程序输出)

Input a decimal: 31

【样例输出】

The octal is 37

The hexadecimal is 1F

【样例输入2】(下划线部分为键盘输入,其余部分为程序输出)

Input a decimal: 22

【样例输出】

The octal is 26

The hexadecimal is 16

【样例说明】

输入提示符后要加一个空格。例如“Input integers: ”,其中“:”后要加一个且只能一个空格。

输入的数据之间以一个空格相隔。

输出语句的“is”后面加一个且只能加一个空格。

英文字母区分大小写。必须严格按样例输入输出。


#include<stdio.h>
int fact(int n)
{
    int sum=0,a,b,k=1;
    a=n;
        while(a!=0){
            b=a%8;
            a=a/8;
            sum=sum+b*k;
            k=10*k;
        }
    return sum;
}

int main(void)
{
    int m,n,a,yushu,i=1;
    int b[100];
    printf("Input a decimal: ");
    scanf("%d",&n);
    a=fact(n);
    printf("The octal is %d\n",a);
    char zifu[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    while(n>0) { 
        yushu=n%16; 
        b[i++]=yushu; 
        n=n/16; 
    } 
    printf("The hexadecimal is ");
    for(i=i-1;i>0;i--){
        m=b[i];
        printf("%c",zifu[m]); 
    }
    return 0;
}


推荐您阅读更多有关于“”的文章

[一个Java程序猿的转型之路,读研深造,专注机器学习推荐算法]
本站所有文章如无特别注明均为原创。作者:吉米酱 ,复制或转载请以超链接形式注明转自 Jimmy小站
原文地址《6-2 编程题,数制转换
额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright © Jimmy小站 Allrights Reserved.备案号:桂ICP备 15005996