为什么运行结果和预期结果不一样

ee在努力 ee在努力 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

 

 4 10
SSSXXSXXSX
SSSXXSXXS
SSSSSSSSSSXSSXXXXXXXXXXX
SSSXXSXXX

 

 

代码如下

#include<stdio.h>
#include <malloc.h>
#include<stdbool.h>
typedef  int Position;
typedef  struct SNode *PtrToSNode;
typedef int ElementType;
struct  SNode {
    ElementType  *Data; /* 存储元素的数组 */
    Position  Top;              /* 栈顶指针 */
    int  MaxSize;               /* 堆栈最大容量 */
};
typedef  PtrToSNode  Stack;
Stack CreateStack(int MaxSize);
bool IsFull( Stack S );
bool IsEmpty( Stack S );
ElementType Pop( Stack S );

Stack CreateStack(int MaxSize) 
{
    Stack S=(Stack)malloc(sizeof(struct SNode));
    S->Data=(ElementType*)malloc(MaxSize*sizeof(ElementType));
    S->Top=-1;
    S->MaxSize=MaxSize;
    return S;
}

bool IsFull( Stack S )
{   
    return (S->Top == S->MaxSize-1);
}

bool Push( Stack S, ElementType X )
{  
       if ( IsFull(S) ) 
       {
        return -1;  
        
    }
    else 
    {
        S->Data[++(S->Top)] = X;//top先+1,再放值
        
    }
}

bool IsEmpty( Stack S )
{              
      return (S->Top == -1);
}

ElementType Pop( Stack S )
{  
    if ( IsEmpty(S) ) 
    {
        return -1;
        
    }
    else    
    return ( S->Data[(S->Top)--] );
}


int main()
{
    int N,M;
    scanf("%d %d",&N,&M);
    Stack S;
    int i,j;
    char a[100];
    while(N--)
    {
        for(i=0;i<100;i++)
        {
            scanf("%s",&a[i]);
        }
    }
    while(N--)
    {
        S=CreateStack(M);
    }
    for(i=0;i<N;i++)
    {
            if(a[i]='S')
            {
                if(!IsFull(S ))
                {
                    Push(S,1);
                }
                else if(IsFull(S ))
                {
                    printf("NO");
                }
            }
            else if(a[i]='X')
            {
                if(!IsEmpty(S ))
                {
                    Pop(S );
                }
                else if(IsEmpty(S ))
                {
                    printf("NO");
                }
            }
    }
    if(IsEmpty(S ))
    {
        printf("YES");
    }
    return 0;
}
 

 

...全文

相关推荐

浅谈Java StringBuilder为什么线程不安全

主要介绍了浅谈Java StringBuilder为什么线程不安全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38737630

解密执行力心法结果思维.pptx

解密执行力心法结果思维.pptx

收藏哲173

性能测试、分析和调优

企业级商务解决方案的性能测试、分析和调优

baidu_20613615

pycharm运行和调试不显示结果的解决方法

刚在虚拟机里面安装了pycharm,配置(setting)完后,新建一个py文件,键入”hello world”,竟然没有结果,虽然运行成功。pycharm太不友好了吧! 然后开始找问题: 1:有人说是文件名的问题,这个可能有,但是我没有改,我觉得我的这个很规范。 2:pyqt的auto选项,试了一下没反应。 3:还有人说版本问题,我check了最新版应该没问题,再装一次太麻烦了,也没有改。 4:还有禁掉pycharm网络的问题。太扯了吧,反正我应该不是。 都TM什么问题些!!!好不靠谱!!! 搞了半天,还是自己找出来了!!! 原来是选择的python.exe的问题。选择了错误的pytho

weixin_38528086

白酒行业专题分析报告:不一样的春节,超预期的终端动销及补库存.pdf

白酒行业专题分析报告:不一样的春节,超预期的终端动销及补库存.pdf

结冰架构
评论 1
收藏 已收藏
分享
返回顶部
ee在努力
消息协作 536 成员 39,094 内容