| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 354 人关注过本帖
标题:求助,快快快
只看楼主 加入收藏
西菜鸟
Rank: 1
来 自:东方
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-10
收藏
 问题点数:0 回复次数:3 
求助,快快快
#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>
#define N 20000
typedef struct astack *stack;
typedef struct astack
{
    int top,maxtop;
    int*data;
}astack;

stack stacklnit (int size)
{
    stack s=(stack)malloc(sizeof*s);
    s->data=malloc(size*sizeof(int));
    s->maxtop=size-1;
    s->top=-1;
    return s;
}

void push(int x,stack s)
{
    if(s->top>=s->maxtop)printf("stack is full");
    else s->data[++s->top]=x;
}

int pop(stack s)
{
    if(s->top<0)printf("stack is empty");
    else return s->data[s->top--];
}

int main(int argc, char* argv[])
{    
    int data[N],a;



    stack s=stacklnit(N);
    s->top=data[0];    

    
    push(100, s);
    push(200, s);
    push(300, s);
    a=pop( s);
    printf("%d\n",a);
    return 0;
}

高手们,我这那出错了,能告诉我吗。
搜索更多相关主题的帖子: include return 
2008-03-11 17:20
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
错误很多啊

这段代码就是个错误。

重写吧

—>〉Sun〈<—
2008-03-11 19:10
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 以前写的 */

#include <stdio.h>

typedef struct Stack_Node{
    int item;
    struct Stack_Node * next;
} Stack_Node;

typedef Stack_Node * Stack;

int InitiaStack(Stack * const pStack)   /* 初始化栈     */
{
    *pStack = NULL;
}

int EmptyStack(const Stack * const pStack)    /* 栈是否为空   */
{
    return (*pStack == NULL ? 1 : 0);
}

int FullStack(const Stack * const pStack)     /* 栈是否已满   */
{
    Stack_Node * pt = NULL;
   
    if(pt = (Stack_Node *)malloc(sizeof(Stack_Node)) )
    {
        free(pt);
        return 0;
    }
    return 1;
}
   
   
int Push(Stack * const pStack, const int * const num)            /* 入栈         */
{
    Stack_Node * pnew = NULL;
   
    pnew = (Stack_Node *)malloc(sizeof(Stack_Node));
   
    if(pnew == NULL)    /* 无法分配内存 */
    {
        fprintf(stderr, "\n内存分配失败! 将退出程序!\n");
        getchar();
        exit(1);
    }
   
    pnew->item = *num;
    pnew->next = *pStack;
    *pStack = pnew;
    return 1;
}

int Pop(Stack * const pStack, int * const num)              /* 出栈         */
{
    Stack_Node * temp = NULL;
   
    if(*pStack == NULL)
        return 0;
    else
    {
        temp = *pStack;
        *num = temp->item;
        *pStack = (*pStack)->next;
        free(temp);
        return 1;
    }
    return 0;   /* 可以省略 */
}

int EndStack(Stack * const pStack)      /* 结束工作     */
{
    Stack_Node * temp = *pStack;
   
    while(*pStack)
    {
        temp = *pStack;
        *pStack = (*pStack)->next;
        free(temp);
    }

    return (*pStack == NULL ? 1 : 0);
}

—>〉Sun〈<—
2008-03-11 19:13
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 主函数部分,这个是测试用的 */

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, j, n;
    Stack stack_list;
   
    InitiaStack(&stack_list);
   

    if(EmptyStack(&stack_list))
    {
        puts("OK,准备就绪...");
    }
    else
    {
        fprintf(stderr, "出错!\n");
        getchar();
        exit(1);
    }
   
    printf("请输入数字: ");
    while(scanf("%d", &n) != 1 || n > 99999)
    {
        while(getchar() != '\n')
            continue;
        printf("请输入数字: ");
    }
    while(getchar() != '\n')
        continue;

    for(i = 1; i <= n; ++i)
        Push(&stack_list, &i);

    i = j = 0;
    system("CLS");
    while(!EmptyStack(&stack_list))
    {
        ++i;
        Pop(&stack_list, &n);
        printf("%04d ", n);
        if(i % 10 == 0)
        {
            putchar('\n');

            ++j;
            if(j % 24 == 0)
            {
                j = 0;

                fprintf(stderr, "按回车转到下一页...");
                while(getchar() != '\n')
                    continue;
                putchar('\n');
            }
        }
    }
    putchar('\n');
   
    if(EmptyStack(&stack_list))
        puts("Done.");
   
    getchar();
    return 0;
}

—>〉Sun〈<—
2008-03-11 19:15
快速回复:求助,快快快
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016883 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved