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

ee在努力 2022-04-14 19:43:14

 

 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;
}
 

 

...全文
213 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-编程语言 发布问题, 以便更快地解决您的疑问

536

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧