HEAVEN00011 2021-12-14 12:00 采纳率: 83.3%
浏览 37
已结题

主函数里的b如果自行输入就输出不了结果,如果一开始就给它赋值就能出结果,请问是为什么呢

#include<stdio.h>
#include<stdlib.h>
typedef struct tree
{
char a;
struct tree *l;
struct tree *r;
}tree,*btree;
int i;
int e;
int y;
btree make(btree T,char j[],int c[],int b)
{
btree n[b];
for(i=0;i<b;i++)
{
n[i]=(btree)malloc(sizeof(tree));
n[i]->a=j[i];
n[i]->l=n[i]->r=NULL;
}
e=1;
for(i=0;i<b;i++)
{
if(c[i]!=0)
{
n[i]->l=n[e];
for(y=1;y<=c[i]-1;y++)
{
e++;
n[e-1]->r=n[e];
}
e++;
}
}
T=n[0];
return T;
}
void nice(btree T)
{
if(T!=NULL)
{
nice(T->l);
printf("%c ",T->a);
nice(T->r);
}
}
int main()
{
int b;
scanf("%d",&b);
int c[b];
char j[100];
for(i=0;i<b;i++)
{
scanf("%c",&j[i]);getchar();
}
for(i=0;i<b;i++)
{
scanf("%d",&c[i]);
}
btree T;
T=make(T,j,c,b);
nice(T);
return 0;
}

  • 写回答

2条回答 默认 最新

  • 书山客 2021-12-15 09:28
    关注

    定义可变数组在C++中可以定义vector类型的数据,C语言可以自己手动写一个类似的方法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月14日