Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89717
  • 博文数量: 44
  • 博客积分: 1920
  • 博客等级: 上尉
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-06 09:13
文章分类

全部博文(44)

文章存档

2011年(1)

2009年(43)

我的朋友

分类: C/C++

2009-07-23 09:54:18

 

//十进制转二进制输出(利用栈来实现)C代码(written by myself):

#include "stdio.h"
int push(int*,int ,int*);
int pop(int*,int*,int*);
void exit(int );

void main(void)
{
    static int a[20];
    int top=0,b,t,receive[20],n=0,i;
    int *p=receive;
    while(1)
    {
        printf("请输入一个十进制的数:\n");
         scanf("%d",&b);
         if(b==0)
         {
             printf("0\n");
              continue;
         }
          while(b)
          {
              t=b%2;
               b=b/2;
              push(a,t,&top);
          }
         while(!(top==0))
         {
              pop(a,p,&top);
               n++;
              p++;
          }
          for(i=0;i<n;i++)
          {
               printf("%d",receive);
          }
          printf("\n");
          p-=n;
         n=0;
    }
}

int pop(int *a,int *receive,int *top)
{
    if(*(top)==0)
    {
          printf("栈空\n");
          return 0;
    }
    else
    {
            (*top)--;
        *receive=*(a+*(top));
        return 1;
    }
}

int push(int *a,int n,int *top)
{
    if((*top)==20)
    {
        printf("栈满\n");
        return 0;
    }
    else
    {
        *(a+(*top))=n;
        (*top)++;
        return 1;
    }
}

阅读(1152) | 评论(0) | 转发(0) |
0

上一篇:tcp/udp/ip数据报

下一篇:XMODEM协议

给主人留下些什么吧!~~