关于数据结构书后练习题
error C2664: “printf”: 不能将参数 1 从“char”转换为“const char *”1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
这是错误是怎么回事呀求高手解答下????????????????????????????????????????源代码是这样的
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STACK_INIT_SIZE 1000
#define STACKINCREMENT 10
#define OK 1
#define ERROR 0
typedef struct {
char *base;
char *top;
int stacksize;
}SqStack;
int StackEmpty(SqStack &S)
{
if(S.top==S.base)
return 0;
else
return 1;
}
char InitStack(SqStack &S)
{S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));
if(!S.base)
exit(0);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
}
char Push(SqStack &S,char e)
{
if (S.top-S.base>=S.stacksize)
{
S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));
if (!S.base)
exit(0);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return e;
}
char Pop(SqStack &S,char &e)
{
if(S.top==S.base)
return ERROR;
e = *--S.top;
return e;
}
void main()
{SqStack S;
char x,y;
InitStack(S);
x='c';
y='k';
Push(S,x);
Push(S,'a');
Push(S,y);
Pop(S,x);
Push(S,'t');
Push(S,x);
Pop(S,x);
Push(S,'s');
while(!StackEmpty(S))
{Pop(S,y);
printf(y);
};
printf(x);
}