A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张芳涛 中级黑马   /  2014-11-20 22:45  /  752 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天基础班讲了禁止之间的转化,
下面这个事相关的代码。弄了好长时间
#include<stdio.h>
#include<stdlib.h>
#define stack_size 100
#define stack_extra_size 10 typedefstruct {
int *base;
int *top;  
intstacksize;
}
stack,*pstack;
voidinitstack(stack &s) {  
s.base=(int *)malloc(stack_size*sizeof(int));  s.top=s.base;  s.stacksize=stack_size;
}
void push(stack &s,int e) {  if(s.top-s.base>=s.stacksize)  {   s.base=(int *)realloc(s.base,(stack_size+stack_extra_size)*sizeof(int));   if(!s.base )exit(-1);
  s.top=s.base+s.stacksize;
  s.stacksize+=stack_extra_size;

}
    *s.top=e;s.top++; }
int pop(stack &s,int&e) {  if(s.top==s.base )  return 0;  else  {   e=*(--s.top);return 1;

}
}
intstackempty(stack s) {  if(s.top==s.base )return 1;  
else return 0;
}
voiddatechange(inta,int N) {  stack s;  
int e;
  wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();});   
initstack(s);  while(a)  {   push(s,a%N);   a/=N;  }
while(!stackempty(s))  {   pop(s,e);   
printf("%d",e);
}printf("\n");
}
voidsixteenchange(int n) {  int e;
stacks;initstack(s);
while(n)  {   push(s,n%16);   n/=16;
}
while(!stackempty(s))  {   pop(s,e);   switch(e)   {
  case 10:printf("A");break;   case 11:printf("B");break;   case 12:printf("C");break;   case 13:printf("D");break;   case 14:printf("E");break;   case 15:printf("F");break;   default :printf("%d",e);break;   
}
}printf("\n");
} void main()
{  
intn,N;char k=' ';
printf("请输入您想要从10进制转换后的进制数:(一般有几种,大于等于10的只有16进制)");  scanf("%d",&N);
printf("请输入一些10进制数,然后转换为%d进制\n",N);  
while(k!='#')
{
printf("请输入一个数:");  scanf("%d",&n);
printf("转化为%d进制后为:",N);  
if(N==16) sixteenchange(n);
elsedatechange(n,N);  printf("还想继续吗? \n继续请按其他键,结束请按#键:");  getchar();
scanf("%c",&k);  }   
}

4 个回复

倒序浏览
不错嘛。很详细总结的!!!
回复 使用道具 举报
如果你知道认清的方向,那么全世界都后悔为你让路
回复 使用道具 举报
基础知识很重要,基础扎实了,后面学着才得心应手....
回复 使用道具 举报
呵呵,加油,若干年后的你一定会为你,现在的行为而感到骄傲的。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马