tc与vc++编辑c语言以哪个为标准?
有些程序tc运行的出来,但是vc++确不行这个时候到底以哪个为基准?哪个才是正确的?
比如我这个程序
#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define max 1024
typedef struct bitnode{char data;
struct bitnode *lchild,*rchild;}bitnode;
typedef struct {bitnode *data[max];
int top;}seqstack;
main()
{seqstack *s,*q;
bitnode *b=NULL,*p,*r;
char str[max],x,ch;
int i=0,j=0,k;
把字符装入数组中
scanf("%c",&x);
while(x!='\n')
{str[i++]=x;
scanf("%c",&x);
};
创建二叉数
s=(seqstack*)malloc(sizeof(seqstack));
s->top=-1;
ch=str[j];
while(ch!='\0')
{
switch(ch)
{case '(' : s->top++;s->data[s->top]=p;k=1;break;
case ')' : s->top--;break;
case ',' : k=2;break;
default: p=(bitnode*)malloc(sizeof(bitnode));
p->data=ch;p->lchild=p->rchild=NULL;
if(b==NULL)
b=p;
else
{
switch(k)
{case 1: s->data[s->top]->lchild=p;break;
case 2: s->data[s->top]->rchild=p;break;
};
};
};
j++;
ch=str[j];
};
先序遍历二叉数
q=(seqstack*)malloc(sizeof(seqstack));
q->top=-1;
if(b)
{q->top=0;
q->data[q->top]=b;
while(q->top>=0)
{r=q->data[q->top];
q->top--;
printf("%c",r->data);
if(r->rchild!=NULL)
{q->top++;
q->data[q->top]=r->rchild;
};
if(r->lchild!=NULL)
{q->top++;
q->data[q->top]=r->lchild;
};
};
};
}
tc可以运行出来
" border="0" />
vc++却说
" border="0" />
编译出来都没有错误
就是运行的时候不一样
非常感谢大家的帮忙
谢谢!
[[it] 本帖最后由 jerrymouse 于 2008-10-14 10:52 编辑 [/it]]