用C语言写程序:将八进制转化为16进制

来源:百度知道 编辑:UC知道 时间:2024/05/02 12:08:32
可能要用到递归的方法

是的,我用的递归在做你这道
题目。以下是代码你看看通过
编译了的:
#include<stdio.h>
void main()
{
void change(char *p);
char str[20];
gets(str);
change(str);
}
void change(char *p)
{
void change1(unsigned long a);
int i;unsigned long a=0;
for(i=0;*(p+i)!='\0';i++)
a=a*8+*(p+i)-48;
change1(a);
printf("\n");
}
void change1(unsigned long a)
{
if(a/16==0)
switch(a%16)
{
case 15:printf("f");break;
case 14:printf("e");break;
case 13:printf("d");break;
case 12:printf("c");break;
case 11:printf("b");break;
case 10:printf("a");break;
default: printf("%d",a%16);
}
else
{
change1(a/16);
switch(a%16)
{
case 15:printf("f");break;
case 14:printf("e");break;
case 13:printf("d");break;
case 12:print