| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:请指点一下,程序能够运行但是输出时有点小错误。谢谢!
只看楼主 加入收藏
jrcy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
请指点一下,程序能够运行但是输出时有点小错误。谢谢!
#include"stdlib.h"
#include<stdio.h>
int s[7];int m;int top;int *v;
void chushihuazhan()
{  v=(int *)malloc(m*sizeof(int));
       top=0;
       return;
}
int  push(int x)
   {         if (top==m)
            { printf("Stack-overflow\n");
              return;}
               top=top+1;
               s[top-1]=x;
                return(x);               
   }
int  pop(int y)
{
      if (top==m)
      { printf("Stack-underflow\n");
        return;}
      {y=s[top-1];
      top=top-1;
      return(y);}
}
int  duzhanding(int  y)
{  if (top==0)
   { printf("Stack empty \n");
     return;}
      y=s[top-1];
      return(y);
}
int main()
{
    int m=10; int w,p,i,t;
    chushihuazhan();
    printf("建立一个容量为%d的栈\n",m);   
    printf("入栈的各元素先后分别为:\n");
    for(t=50;t<=100;t+=10)   
     { push(t);
       printf("%d\n",t);
     }
       printf("连续三次退栈的元素先后为:\n");
    for(i=1;i<=3;i++)   
    {  pop(w);
       printf("%d\n",w); }      
    duzhanding(p);
    printf("栈顶元素为:%d\n",p);
}
最后调用出栈函数还有输出栈顶元素时输出不正常,请帮忙指正一下。谢谢了!
搜索更多相关主题的帖子: include return 
2013-05-16 22:21
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:20 
问题在:duzhanding(p);
     printf("栈顶元素为:%d\n",p);、这两句中,你用p作为duzhanding()的参数,可是你前面根本没有对p 做任何赋值。
再看int  duzhanding(int  y)
 {  if (top==0)
   { printf("Stack empty \n");
      return;}
       y=s[top-1];
       return(y);
 }
这个函数,你返回的y已经不是为面的y了,所以外面的y值根本就没有改变。
你可以改为int main()
 {
     int m=10; int w,p,i,t; //p 在这里没有起什么作用,可以不要
    chushihuazhan();
     printf("建立一个容量为%d的栈\n",m);   
    printf("入栈的各元素先后分别为:\n");
     for(t=50;t<=100;t+=10)   
     { push(t);
        printf("%d\n",t);
      }
        printf("连续三次退栈的元素先后为:\n");
     for(i=1;i<=3;i++)   
    {  pop(w);
        printf("%d\n",w); }      
    p=duzhanding(p);//这里可以这样改,保证你的思路下能得出结果,
     printf("栈顶元素为:%d\n",p);
 }
2013-05-16 22:47
快速回复:请指点一下,程序能够运行但是输出时有点小错误。谢谢!
数据加载中...
 
   



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

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