输入1个10进制整数,依次输出每一个数的八进制和十六进制表示。请帮我看看下面的程序那里错了?

#include<stdio.h>
int main()
{
int a;
printf("Input: ");
scanf("%d",&a);
printf("Output:\n");
printf("%o %x\n",a,a);
return 0;
}

你写的这个程序本身是没有错误的,运行结果也正确。如果有错,那就可能是对题目的理解有误,题目可能是希望你写一个函数来实现这个功能。而你这个程序只是简单的利用了printf函数的格式控制。
下面写的是一个将十进制数转换为八进制数输出的函数,十六进制类似。进行函数调用就可以了。希望可以帮到你。
void decToOCT(int num)
{
int i,a,j;
char s[8];
j=0;
if(num==0) {s[j]='0';j++;}
for(i=num;i>0;i=i/8)
{
a=i%8;
s[j]=a+'0';
j++;
}
s[j]='\0';
printf("to OCT:");
for(i=strlen(s);i>=0;i--)
printf("%c",s[i]);
printf("\n");
}追问

我这个输负数的时候好像就不得行,题目没有要求用函数。谢谢哈

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-14
横看,竖看都没发现错啊!!!!!!!!!!!!
第2个回答  2013-09-14
没有什么问题
第3个回答  2013-09-14
我帮你测了一下,没有问题,你指的错误是?本回答被提问者采纳
第4个回答  2013-09-14
程序对着啊!
相似回答