小佟同学
2021-10-17 08:37
采纳率: 100%
浏览 32

C语言结构体问题希望得到帮助

img


想不明白一点,为什么调试的时候,将新字符付给这个结构体里面定义的字符类型变量,结果却显示0/000,为什么不是A那,我输入的是A啊,很头疼
结构体类型以及全部代码在这里,引用的该作者的代码
https://blogcsdnnet/qq_34941153/article/details/100153245


#include <stdio.h>
#include <malloc.h>
#define MaxSize 13
typedef struct TNode
{
    char data;
    TNode* lchild;
    TNode* rchild;
}TNode;

int find_public(TNode T[],int i,int j)//注意这里不是TNode* &T
{
    if(T[i].data!='#'&&T[j].data!='#')//还要判断结点是否存在
    {
        while(i!=j)
        {
            if(i>j)
                i=i/2;
            else
                j=j/2;
        }
        return i;
    }
    else
        return 0;

}

int main()
{
    TNode T[MaxSize];
   
    for(int i=1;i<MaxSize;i++)//从数组下标1开始存储
    {
        char h;
        scanf("%c",&h);
        T[i].data=h;
    }
    int k=find_public(T,4,10);
    printf("%c",T[k].data);//测试数据:ABCDE####F#,输出data:B
    return 0;
}


  • 好问题 提建议
  • 收藏

1条回答 默认 最新

  • 已采纳
    typedef struct TNode
    {
        char data;
        TNode* lchild;
        TNode* rchild;
    }TNode;
    
    改为
    typedef struct TNode
    {
        char data;
        struct TNode* lchild;
        struct TNode* rchild;
    }TNode;
    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题