weixin_51796768 2020-10-23 00:00
浏览 39

急求大佬帮我看下这个顺序栈有关操作程序哪里错了,运行不出来。

构造一个顺序栈,进行进栈和出栈操作,并用栈实现把任意一个十进制数转换为其他进制数的运算。改完之后发现不对,运行不出来。
#include
#include //新增预处理指令
#define MAXSIZE 100

typedef struct //定义结构体为顺序站
{ int base;

int top;
int stacksize;//定义顶端指针
}SqStack;

SqStack InitStack(SqStack S) //顺序栈的初始化 s 为 名字
{ int data[MAXSIZE];
S.top=S.base;
S.top=0;

S.stacksize= MAXSIZE ; // 初始化 站定指针 为 -1
return S; //返回S为栈 /1
}

int push(SqStack S, int e ) //进栈操作 push 进展
{ if(S.top - S.base == S.stacksize)

{
exit(0);
}
S.top=e;

S.top++;//将数值压入指针
return e; //站定指针加

}

int pop(SqStack S) //出栈操作
{ int e;
if(S.top == S.base)
{

return 0;
} //如果定点指针为 -1,为空

e=S.top;
S.top--;
                        // 将定点元素给x ,指针-1
return e;                     

}

void Digit_conversion(SqStack S) //用栈实现数制的转换
{

int i=0,x,y,k[100],m; InitStack(S);// 定义 数组
printf("输入十进制数和要转换的数制:\n");
scanf("%d,%d",&x,&y); //进制转换运算方法,求余数

while(x>0)               
{  
    push(S,k[i]);     //将 x%y的余数数值给x ,输入站
    x=x/y;

}                         
while(!(S.top==0))             //站不为空 时执行语句
{
    k[i]=pop(S);     //数组元素   x%y  k[i]
    i++; 
    m=i; 
}                    //将k[i]数值给出战
printf("转换结果:");
for(i=0;i<m;i++)                 //用于16进制转换
{   

    if(k[i] >9) printf("%c",k[i]+'A'-10);
    else  printf("%3d",k[i]);    }
}

int main( ) //程序从主函数开始
{ int e,i,x;

SqStack S;
S.top=0;
printf("请输入元素个数:\n");

scanf("%d",&x); //从键盘输入个数

printf("请输入元素并依次进栈:");
for(i=0;i<x;i++)
{   scanf("%d",&e);         //从键盘输入元素
  push(S,e);

}              //调用进站

printf("出栈顺序为:");     //出战
for(i=0;i<x;i++)           
{     e=pop(S)  ;       //调用出战
    printf("%5d",e); 
}
printf("\n");
Digit_conversion(S);
printf("\n");           //调用转制
return 0;

}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)