输入8个10进制整数,依次输出每一个数的八进制和十六进制表示。

题目描述

输入8个10进制整数,依次输出每一个数的八进制和十六进制表示。

输入格式

共有8行,每行包含一个整数。

输出

对于每一行输入,输出一行,包含相应数的八进制和十六进制表示,用空格隔开。

样例输入
10
32
75
-617
-111
2483
-28654
21003

样例输出
12 a
40 20
113 4b
-1151 -269
-157 -6f
4663 9b3
-67756 -6fee
51013 520b
我是这样编的
#include<stdio.h>
void main()
{int i, a[8];
for(i=0;i<8;i=i+1)
scanf("%f",&a[i]);
for(i=0;i<8;i=i+1)
printf("%o %lx\n",a[i],a[i]);
}
为什么输入负数不能显示16进制

因为8 、16进制无没有正负数的概念,所以对负数,你要进行相应的处理!
另:
scanf("%d",&a[i]); //这里应该是%d float才用%f追问

那应该怎么处理,初学者,求指教啊

追答#include<stdio.h>
void main()
{
    int  i, a[8];
    for(i=0;i<8;i=i+1)
        scanf("%d",&a[i]); //--
    for(i=0;i<8;i=i+1)
    {
        if ( a[i] < 0 )
            printf("-%o -%x\n",-a[i],-a[i]);
        else
            printf("%o %x\n",a[i],a[i]);
    }
}

追问

谢谢大神(^_^)

追答

不客气,多练习

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答