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

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为什么线程不安全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
解密执行力心法结果思维.pptx
解密执行力心法结果思维.pptx
性能测试、分析和调优
企业级商务解决方案的性能测试、分析和调优
pycharm运行和调试不显示结果的解决方法
刚在虚拟机里面安装了pycharm,配置(setting)完后,新建一个py文件,键入”hello world”,竟然没有结果,虽然运行成功。pycharm太不友好了吧! 然后开始找问题: 1:有人说是文件名的问题,这个可能有,但是我没有改,我觉得我的这个很规范。 2:pyqt的auto选项,试了一下没反应。 3:还有人说版本问题,我check了最新版应该没问题,再装一次太麻烦了,也没有改。 4:还有禁掉pycharm网络的问题。太扯了吧,反正我应该不是。 都TM什么问题些!!!好不靠谱!!! 搞了半天,还是自己找出来了!!! 原来是选择的python.exe的问题。选择了错误的pytho
白酒行业专题分析报告:不一样的春节,超预期的终端动销及补库存.pdf
白酒行业专题分析报告:不一样的春节,超预期的终端动销及补库存.pdf


