C语言结构体打印出错

C语言结构体

#include<stdio.h>
#include<string.h>
struct day{
    int year;
    int month;
    int data;
};
struct Node{
     char name[20];
     char sex[10];
     struct day birthday;
     char address[100];
};
int main(void)
{
    struct Node node1={"wangchun","man",{2003,2,18},"China"};
    printf("姓名:%s,性别:%s,生日:%d,住址:%s",node1.name,node1.sex,node1.birthday,node1.address);
    
}

就是我在打印这个birthday的时候并不会报错但是会打印出来一些不相关的字符,不明白是怎么回事

你那结构体有三个变量,怎么一次性打出来

#include<stdio.h>
#include<string.h>
struct day {
    int year;
    int month;
    int data;
};
struct Node {
    char name[20];
    char sex[10];
    struct day birthday;
    char address[100];
};
int main(void)
{
    struct Node node1 = { "wangchun","man",{2003,2,18},"China" };
    printf("姓名:%s,性别:%s,生日:%d年%d月%d日,住址:%s", node1.name, node1.sex, node1.birthday.year,node1.birthday.month,node1.birthday.data, node1.address);

}


生日错了