太工1220333吧 关注:13贴子:768
  • 4回复贴,共1
一起做题


1楼2014-09-30 11:25回复
    有认识我的吗?


    2楼2014-09-30 11:27
    回复
      实验4 正确 看下楼


      IP属地:山西3楼2014-09-30 11:27
      回复
        #include <stdio.h>
        #include <stdlib.h>
        #define max 1024//定义一位数组最大长度
        typedef int datatype;
        typedef struct //结果体定义
        {
        datatype elements[max];
        int top;
        }Stack;
        void setNull(Stack *S)//空栈
        {
        S->top=-1;
        }
        int isfull(Stack *S)//判断是否为满栈
        {
        if(S->top>=max-1) return 1;
        else return 0;
        }
        int isempty(Stack *S)//判断是否为空栈
        {
        if(S->top>=0) return 0;
        else return 1;
        }
        void push(Stack *S,datatype x)//向栈中输入数据
        {
        if(S->top>=max-1)
        printf("顶部溢出了~\n");
        else
        {
        S->top++;
        S->elements[S->top]=x;
        }
        }
        datatype *pop(Stack *S)
        {
        datatype *temp;
        if(isempty(S))
        {
        printf("底部溢出\n");
        return(NULL);
        }
        else
        {
        S->top--;
        temp=(datatype *)malloc(sizeof(datatype));
        *temp=S->elements[S->top+1];
        return (temp);
        }
        }
        void conversion(int n) //十进制转换二进制函数
        {
        int m;
        Stack S;
        setNull(&S);
        while(n)
        {
        m=n%2;
        if(isfull(&S))
        printf("顶部溢出\n");
        else
        push(&S,m);
        n=n/2;
        }
        printf("十进制转二进制结果为:\n");
        while(!isempty(&S))
        printf("%d",*(pop(&S)));
        printf("\n");
        }
        int main()
        {
        int number;
        printf("输入要转换的十进制数;\n");
        scanf("%d",&number);
        conversion(number);
        }


        IP属地:山西4楼2014-09-30 11:28
        回复
          。。。


          IP属地:山西5楼2014-09-30 11:31
          回复