用C语言编程,输入一个十进制正整数,输出其对应的十六进制整数。
4个回答
展开全部
不用系统的函数,用栈实现
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <malloc.h>
struct stack
{
char* base;
char* top;
int length;
};
void InitStack(struct stack *p)
{
p->base=(char*)malloc(100);
p->top=p->base;
*(p->top)=0;
p->length=0;
}
bool push(struct stack *p,char a)
{
if(p->length >=100) return false;
*(p->top) = a;
p->top++;
*(p->top)=0;
p->length++;
return true;
}
bool pop(struct stack *p)
{
if(p->length <= 0) return false;
p->top--;
*(p->top)=0;
p->length--;
return true;
}
char Get_Top(struct stack *p)
{
if(p->length <= 0) return false;
return *(p->top-1);
}
int main(int argc, char* argv[])
{
struct stack MyStrack;
InitStack(&MyStrack);
int a;
printf("请输入一个整数:");
scanf("%d",&a);
while(a)
{
int tempint=a%16;
char temp = tempint>9 ? 'A'+tempint-10:'0'+tempint;
push(&MyStrack,temp);
a=a/16;
}
int len=MyStrack.length;
printf("转化为十六进制为:");
for(int i=0;i<len;i++)
{
char temp=Get_Top(&MyStrack);
if(!temp) return 0;
pop(&MyStrack);
printf("%c",temp);
}
return 0;
}
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <malloc.h>
struct stack
{
char* base;
char* top;
int length;
};
void InitStack(struct stack *p)
{
p->base=(char*)malloc(100);
p->top=p->base;
*(p->top)=0;
p->length=0;
}
bool push(struct stack *p,char a)
{
if(p->length >=100) return false;
*(p->top) = a;
p->top++;
*(p->top)=0;
p->length++;
return true;
}
bool pop(struct stack *p)
{
if(p->length <= 0) return false;
p->top--;
*(p->top)=0;
p->length--;
return true;
}
char Get_Top(struct stack *p)
{
if(p->length <= 0) return false;
return *(p->top-1);
}
int main(int argc, char* argv[])
{
struct stack MyStrack;
InitStack(&MyStrack);
int a;
printf("请输入一个整数:");
scanf("%d",&a);
while(a)
{
int tempint=a%16;
char temp = tempint>9 ? 'A'+tempint-10:'0'+tempint;
push(&MyStrack,temp);
a=a/16;
}
int len=MyStrack.length;
printf("转化为十六进制为:");
for(int i=0;i<len;i++)
{
char temp=Get_Top(&MyStrack);
if(!temp) return 0;
pop(&MyStrack);
printf("%c",temp);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<stdlib.h>
void main(){
int a;
char b[10];
scanf("%d",&a);
itoa(a,b,16);
printf("%s",b);
}
#include<stdlib.h>
void main(){
int a;
char b[10];
scanf("%d",&a);
itoa(a,b,16);
printf("%s",b);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行结果
a=1000
a=3e8h
Press any key to continue
程序
//VC6.0
#include "stdio.h"
void main()
{
int a;
printf("a=");
scanf("%d",&a);
printf("\na=%xh\n",a);
}
a=1000
a=3e8h
Press any key to continue
程序
//VC6.0
#include "stdio.h"
void main()
{
int a;
printf("a=");
scanf("%d",&a);
printf("\na=%xh\n",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询