想问一下这里为什么用%c的格式输入数据,程序就运行不了了


#include<stdio.h>
#include<stdlib.h>
#define maxsize 20
typedef struct pnode
{
    char data;
    int parent;
}pnode;
typedef struct
{
    pnode data[maxsize];
    int number;//结点个数
}parent_bitree;           //双亲表示法(在顺序结构增加一个parent数据域,存放其双亲结点的指针or数组下标)

int main()
{
    parent_bitree t;
    printf("请输入二叉树结点的个数:");
    scanf_s("%d", &t.number);
    printf("请输入各结点值及其双亲结点值域:\n");
    for (int i = 0; i < t.number; i++)
    {
        rewind(stdin);
        scanf_s("%c %d", &t.data[i].data, &t.data[i].parent);
    }
    printf("该二叉树结点值及双亲结点指针情况如下所示\n结点值\t双亲结点指针\n");
    for (int i = 0; i < t.number; i++)
    {
        printf(”%c\t%d\n", t.data[i].data, t.data[i].parent);
    }
    return 0;
}

img


我把结构体的data数据域的数据类型改为int,程序就是正常跑的,但是char就不行,这是为什么呢?

%c只有一个字符啊,你输入超过10的数字,它只取1个