//只是利用了堆栈的性质,实际上根本不是
//利用堆栈的性质实现将一个十进制转换成相应的进制表示。
#include<stdio.h>
int convert(int a,int N,int *num)
{
int count=0;
while(a!=0)
{
*(num+count)=a%N;
a=a/N;
count++;
}
return count;
}
int main()
{
int num[10],i,N;
int a,count,get;
int *p=&count;
printf("请输入你要转换的十进制数\n");
scanf("%d",&a);
printf("请输入你要选择的进制\n");
printf("1.二进制\n");
printf("2.八进制\n");
scanf("%d",&N);
get=a;
if(N==1)
count=convert(a,2,num); //输入的N和你要转换的进制不是同一个。
if(N==2)
count=convert(a,8,num);
printf("%d的%d进制表示是\n",get,N);
for(i=count-1 ; i>=0 ; i--) //开始的时候傻×,用的是i<0,肯定都不满足啊,所以完全没有输出。
{
printf("%d",*(num+i));
}
printf("\n");
}
注意16进制就不可用,原因是超过10的数就要用字母表示,会出错的。
posted on 2009-11-27 21:27
deercoder 阅读(369)
评论(0) 编辑 收藏 引用 所属分类:
数据结构和算法分析