'clrscr' : undeclared identifier
#include<stdio.h>#include<stdlib.h>#defineOK1#defineERROR0typedefintkeytype;typedefst...
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef int keytype;
typedef struct bstnode
{
keytype key;
struct bstnode *lchild,*rchild;
}bstnode,*bstree;
int initbst(bstree L)
{
L=(bstnode *)malloc(sizeof(bstnode));
if(L==NULL) exit(ERROR);
L->lchild=NULL;
L->rchild=NULL;
}
int insertbst(bstree L,keytype k)
{
bstree p,f;
p=L;
while(p)
{
if(p->key==k) return 0;
f=p;
p=(k<p->key)?p->lchild:p->rchild;
}
p=(bstnode *)malloc(sizeof(bstnode));
p->key=k;
p->lchild=p->rchild=NULL;
if(k<f->key) f->lchild=p;
else f->rchild=p;
}
int creatbst(bstree L,int n)
{
int i,k;
printf("Please input the elem : k=");
scanf("%d",&k);
L->key=k;
for(i=1;i<n;i++)
{
printf("Please input the elem : k=");
scanf("%d",&k);
insertbst(L,k);
}
}
int deletebst(bstree L,int key)
{
bstree p,f;
bstnode *q,*s;
p=L;f=NULL;
while(p)
{
if(p->key==key) break;
f=p;
p=(key<p->key)?p->lchild:p->rchild;
}
if(!p) return 0;
q=p;
if(q->lchild&&q->rchild)
for(f=q,p=q->rchild;p->lchild;f=p,p=p->lchild);
s=(p->lchild)?p->lchild:p->rchild;
if(!f) L=s;
else
{
if(p==f->lchild) f->lchild=s;
else f->rchild=s;
if(p!=q) q->key=p->key;
}
free(p);
}
void inodertraverse(bstree L)
{
bstnode *stack[30];
bstnode *p;
int top;
top = 0;
p=L;
while(p!=NULL||top!=0)
{
while(p!=NULL)
{
stack[++top]=p;
p=p->lchild;
}
if(top!=0)
{
p=stack[top--];
if(p->key!=NULL)
printf("%5d",p->key);
p=p->rchild;
}
}
}
int main()
{
int i,n,k;
bstnode *L;
clrscr();
initbst(L);
printf("Please give how much node in the bstree ?\nn=");
scanf("%d",&n);
creatbst(L,n);
printf("All of elem is :\n");
inodertraverse(L);
printf("\nWhich elem will be deleted ?\nk=");
scanf("%d",&k);
deletebst(L,k);
printf("All of the elem is :\n");
inodertraverse(L);
return 0;}
clrscr定义的时候是在哪个头文件下面的啊?总是定义不对的,用的是VC++的编译器。 展开
#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef int keytype;
typedef struct bstnode
{
keytype key;
struct bstnode *lchild,*rchild;
}bstnode,*bstree;
int initbst(bstree L)
{
L=(bstnode *)malloc(sizeof(bstnode));
if(L==NULL) exit(ERROR);
L->lchild=NULL;
L->rchild=NULL;
}
int insertbst(bstree L,keytype k)
{
bstree p,f;
p=L;
while(p)
{
if(p->key==k) return 0;
f=p;
p=(k<p->key)?p->lchild:p->rchild;
}
p=(bstnode *)malloc(sizeof(bstnode));
p->key=k;
p->lchild=p->rchild=NULL;
if(k<f->key) f->lchild=p;
else f->rchild=p;
}
int creatbst(bstree L,int n)
{
int i,k;
printf("Please input the elem : k=");
scanf("%d",&k);
L->key=k;
for(i=1;i<n;i++)
{
printf("Please input the elem : k=");
scanf("%d",&k);
insertbst(L,k);
}
}
int deletebst(bstree L,int key)
{
bstree p,f;
bstnode *q,*s;
p=L;f=NULL;
while(p)
{
if(p->key==key) break;
f=p;
p=(key<p->key)?p->lchild:p->rchild;
}
if(!p) return 0;
q=p;
if(q->lchild&&q->rchild)
for(f=q,p=q->rchild;p->lchild;f=p,p=p->lchild);
s=(p->lchild)?p->lchild:p->rchild;
if(!f) L=s;
else
{
if(p==f->lchild) f->lchild=s;
else f->rchild=s;
if(p!=q) q->key=p->key;
}
free(p);
}
void inodertraverse(bstree L)
{
bstnode *stack[30];
bstnode *p;
int top;
top = 0;
p=L;
while(p!=NULL||top!=0)
{
while(p!=NULL)
{
stack[++top]=p;
p=p->lchild;
}
if(top!=0)
{
p=stack[top--];
if(p->key!=NULL)
printf("%5d",p->key);
p=p->rchild;
}
}
}
int main()
{
int i,n,k;
bstnode *L;
clrscr();
initbst(L);
printf("Please give how much node in the bstree ?\nn=");
scanf("%d",&n);
creatbst(L,n);
printf("All of elem is :\n");
inodertraverse(L);
printf("\nWhich elem will be deleted ?\nk=");
scanf("%d",&k);
deletebst(L,k);
printf("All of the elem is :\n");
inodertraverse(L);
return 0;}
clrscr定义的时候是在哪个头文件下面的啊?总是定义不对的,用的是VC++的编译器。 展开
展开全部
#define <conio.h>
V C里 clrscr无法使用的解决方法
今天在分析C++实例的时候遇到了很多clrscr()的函数,但是一用VC加载编译的时候就出错开始以为是没有包含头文件,后来了解到clrscr()函数的头文件#include <conio.h> 只有在C中才能用,VC却不能解释,我晕
后来找到了一个比较好的函数,同样能实现清屏的功能
这就是: system("CLS");它的头文件是#include<windows.h>
放在程序下测试了一下,恩,有效果
程序示例:
#include <conio.h>
#include<windows.h>
int main(void)
{
int i;
system("CLS");
for (i = 0; i < 20; i++)
cprintf("%d\r\n", i);
cprintf("\r\nPress any key to clear screen");
getch();
system("CLS");
cprintf("The screen has been cleared!");
getch();
return 0;
}
V C里 clrscr无法使用的解决方法
今天在分析C++实例的时候遇到了很多clrscr()的函数,但是一用VC加载编译的时候就出错开始以为是没有包含头文件,后来了解到clrscr()函数的头文件#include <conio.h> 只有在C中才能用,VC却不能解释,我晕
后来找到了一个比较好的函数,同样能实现清屏的功能
这就是: system("CLS");它的头文件是#include<windows.h>
放在程序下测试了一下,恩,有效果
程序示例:
#include <conio.h>
#include<windows.h>
int main(void)
{
int i;
system("CLS");
for (i = 0; i < 20; i++)
cprintf("%d\r\n", i);
cprintf("\r\nPress any key to clear screen");
getch();
system("CLS");
cprintf("The screen has been cleared!");
getch();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
华瑞RAE一级代理商
2024-04-11 广告
2024-04-11 广告
impulse-4-xfxx是我们广州江腾智能科技有限公司研发的一款先进产品,它结合了最新的技术创新和市场需求。此产品以其卓越的性能和高效的解决方案,在行业内树立了新的标杆。impulse-4-xfxx不仅提升了工作效率,还为用户带来了更优...
点击进入详情页
本回答由华瑞RAE一级代理商提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询