当前位置: 代码迷 >> C语言 >> 一个题目求助~~!
  详细解决方案

一个题目求助~~!

热度:146   发布时间:2006-04-26 08:16:00.0
一个题目求助~~!
将任意一个十进制整数转换为八进制数.如输入-100,输出-144(使用一维数组)

请高手指点一下,谢谢~~!
----------------解决方案--------------------------------------------------------
int a=?;
printf("%o",a);
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <math.h>

main()
{
int num,a[10],i,x; /*a[10]用于存放八进制每一位上的数字*/
int flag=1; /*用于标记是负数还是正数*/

printf("num=");
scanf("%d",&num);
if(num<0)
flag=0;

x=abs(num);
for(i=0;x;i++)
a[i]=x%8,x/=8; /*除8取余法*/

if(flag==0)
printf("-");
for(i--;i>=0;i--) /*输出应相反*/
printf("%d",a[i]);
}

抛砖引玉,见笑了!


----------------解决方案--------------------------------------------------------
呵呵...都是高手~~~!
----------------解决方案--------------------------------------------------------

基本整型的,长整型的类似~
[CODE]
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(void)
{
int number;
char string[10];

scanf("%d",&number);
itoa( fabs(number), string, 8);
printf("\n%c%s\n",number>=0?10:45, string);
return 0;
}

[/CODE]


----------------解决方案--------------------------------------------------------
printf("\n%c%s\n",number>=0?10:45, string);


这是什么啊!我怎么没看明白

----------------解决方案--------------------------------------------------------

就是那数为负时输出个- 否则换行


----------------解决方案--------------------------------------------------------
看明白了,高,实在是高
----------------解决方案--------------------------------------------------------

版主就是厉害~~~~
像版主学习~!


----------------解决方案--------------------------------------------------------
  相关解决方案