我在做c语言作业,为什么if语句里面我声明并赋值的结构体,不能打印呢。

而且如果提前声明它,则if语句里面的赋值并不会赋到它上面
#include
typedef struct zhigong{
int xiaoshi;
int fen;
}Z;
void main()
{
Z w;
int n,b;
printf("n,b<60");
scanf("%d %d",&n,&b);
if(b==59){
Z w={n+1,b};
}
else
{
Z w={n,b+1};
}
printf("%d %d",w.xiaoshi,w.fen);
}

下面的是我改后的不过我还是想知道上面的为什么不对
void main()
{
Z w;
int n,b;
printf("n,b<60");
scanf("%d %d",&w.xiaoshi,&w.fen);
if(b==59){
w.xiaoshi+=1;
}
else
{
w.fen+=1;
}
printf("%d %d",w.xiaoshi,w.fen);
}

https://www.csdn.net/gather_24/MtjaAg4sNjkzNTUtYmxvZwO0O0OO0O0O.html