随笔-145  评论-173  文章-70  trackbacks-0
//只是利用了堆栈的性质,实际上根本不是
//利用堆栈的性质实现将一个十进制转换成相应的进制表示。
#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 阅读(302) 评论(0)  编辑 收藏 引用 所属分类: 数据结构和算法分析

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理