回 帖 发 新 帖 刷新版面

主题:不看此题非好汉!

为吗通不过?兄弟姐妹们帮帮忙吧!多谢!
#include <iostream.h>
#include <malloc.h>//#define Maxsize 18;//#define Icreat 4;//typedef k int ;//k yu int bie fang fan le
typedef struct//pin xie;
{
    int *base,*top,length;
}stack;
void initStack(stack &L);
void display(stack L);
void inputstack(stack &L,int A[],int n);
void main()
{
    stack L;
    int A[5];
    cout<<"Please input the data:"<<endl;
    for(register j=0;j<5;j++)
    {
        cin>>A[j];
    }
    initStack(L);
    inputstack(L,A,5);
    display( L);
}
void initStack(stack &L)
{
    L.base=(int*)malloc(14*sizeof(int));//
    if(!L.base) cout<<"erro"<<endl;//
    else
        L.base=L.top;
    L.length=18;
    cout<<"The new emputy stack has been builded."<<endl;
}
void inputstack(stack &L,int A[],int n)
{
    if(n>L.length)
    {
        L.base=(int*)calloc(22,sizeof(int));//
    }
    if(!L.base) cout<<"Fail"<<endl;
    else 
    {
        int* p=L.base;
        for(register m=0;m<n;m++)
        {
            *p++=A[m];
        }
    }
    cout<<"The empty has been inputed datas."<<endl;
}
void display(stack L)
{
    cout<<"The stack is:"<<endl;
    while(L.base!=L.top)
    {
        cout<<*L.base++<<' ';
    }
}


回复列表 (共3个回复)

沙发

这个程序用途是什么啊?
感觉应该是指针问题吧,我也经常遇到这种情况。

板凳

stack的格式不对...


  *p++=A[m];
问题应该是出在这里.

3 楼

运行的时候,在void initStack(stack &L)里面的cout<<"The new emputy stack has been builded."<<endl;还没有输出来呢;
   要是后面的语句出错,那前面的cout<<"The new emputy stack has been builded."<<endl;应该先输出才对。

我来回复

您尚未登录,请登录后再回复。点此登录或注册