代码如下:
//算法求解:将十进制数字转化成十六进制数字
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stack>
#define N 100
using namespace std;
int main(){
stack<char> q;
int m;
printf("请输入您的十进制数字:\n");
while(scanf("%d",&m)!=EOF){
char s[N];
itoa(m,s,16);
printf("用函数得到的结果是:%s\n",s);
char c;
while(m/16){
int temp;
temp=m%16;
if(temp>=0&&temp<=9)q.push(temp+'0');
else {//否则大于十按照大写字母形式输出
c='A'+temp-10;
q.push(c);//将字符压入栈中
}
m/=16;
}
if(m>0&&m<=9)q.push(m+'0');
else{
c='A'+m-10;
q.push(c);//将字符压入栈中
}
printf("用算法处理的转化函数为:");
while(!q.empty()){
c=q.top();
printf("%c",c);
q.pop();
}
printf("\n");
}
return 0;
}