error C2664: 'printf' : cannot convert parameter 1 from 'char' to 'const char *',该怎么修改?

typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
typedef char TElemType;
//#define MAX_TREE_SIZE 100
//typedef TElemType SqBiTree[MAX_TREE_SIZE];
//SqBiTree bt;
typedef struct BiTNode { // 结点结构
TElemType data;
struct BiTNode *lchild, *rchild; // 左右孩子指针
} BiTNode, *BiTree;

Status CreateBiTree(BiTree &T){
//按先序次序输入二叉树中节点的值,空格字符表示空数,构造二叉链表表示的二叉树T
char ch;
scanf("%c",&ch);
if(ch==' ')
T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}//CreateBiTree

void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}

把:
void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}
这段代码中的:
printf(T->data); // 访问根结点
改成:
printf("%c",T->data);
就可以了,因为printf必须要一个格式化字符串来描述你想输出的内容是什么,我根据你的代码用了%c,表明输出的是一个字符char
温馨提示:答案为网友推荐,仅供参考