求助!C语言用指针函数实现十进制转,十六进制,八进制,二进制

RT
C语言用指针函数怎么实现十进制转,十六进制,八进制,二进制
自己写的一段,但出错!
望指导!
本人新手!

#include<stdio.h>
#include<string.h>
void trans_to_hex(char *p, int m)
{
int r;
for(;m!=0;p++)
{
r=m%16;
if(r<10)
*p=r+48;
else *p=r+55;
m=m/16;
}
*p='\0';
}

void trans_to_octal(char *p, int m)
{
int r;
for(;m!=0;p++)
{
r=m%8;
*p=r+48;
m=m/8;
}
*p='\0';
}

void trans_to_binary(char *p, int m)
{
int r;
for(;m!=0;p++)
{
r=m%2;
*p=r+48;
m=m/2;
}
*p='\0';
}
void main()
{
int i, n;
char a[5];
printf("请输入一个十进制整数(位数不超过5位): ");
scanf("%d",&n);
trans_to_hex(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);
trans_to_octal(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);
trans_to_binary(a,n);
for(i=strlen(a)-1;i>=0;i++)
putchar(a[i]);
}

#include"stdio.h"
#define MAX 100
typedef struct s
{
int yushu[MAX];
int top;
}SqStack;

SqStack *s;
int n,jinzhi,m;
void transform();
void output(SqStack *s);
int main()
{
printf("计算机0904 16号 林夏飞\n****************\n");
s=(SqStack*)malloc(sizeof(SqStack));
s->top = -1;

printf("输入要转换的十进制数和要转成的进制: ");
scanf("%d %d",&n,&jinzhi);
transform(n,jinzhi,s);
output(s);
getch();
return 0;
}

void transform(int n, int m,SqStack *s)
{

while(n)
{
s->yushu[++s->top]=n%m;
n/=m;
}
}
void output(SqStack *s)
{
printf("%d的%d进制形式是: ",n,jinzhi);
if(s->top==-1)
printf("0");
else
while(s->top!=-1)
{
printf("%d",s->yushu[s->top]);
s->top--;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-09
#include <iostream.h>

int result[100]={0};
int index=0;

void zhuan(int n,int jin)
{
while(n>0)
{
result[index++]=n%jin;
n=n/jin;
}
}

void main()
{
zhuan(10,2);
for(int i=index-1;i>=0;i--)
cout<<result[i];
}本回答被网友采纳
第2个回答  2010-12-10
整型常量
整型常量有3种表示方式:
①十进制整数。例如,123、一456、0。
②八进制整数。以0开头的整数是八进制数。例如,0123表示8进制数123<8),等于十进制数83。
③十六进制整数。以ox或0x开头的整数是十六进制数。例如,0x1.23或0Xl 23表示十六进制数123…),等于十进制数291。
如果在整型常量后面加上字母u或u,则表示无符号整数(unsigned int)。例如,123U或123u是unsigned int型的。如果在整型常量后面加上一个字母L或l,则表示长整数(10ngint)。例如,123[.或123l是long int型的。
你的串号我已经记下,采纳后我会帮你制作

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网