C语言入门问题求解/学生

题目:给出一名学生的语文、数学、英语成绩,判断他是否恰好有一门课不及格(成绩小于 60分)。若该学生恰好有一门成绩不及格输出 1,否则输出0。

标答:#include <stdio.h>

int main()
{
int x,y,z;
scanf("%d %d %d" , &x , &y , &z);

if (( x<60 && y>=60 && z>=60 )||(x>=60&&y<60&&z>=60)||(x>=60&&y>=60&&z<60))
{
    printf("1");
}else{
    printf("0");
}

return 0;

}

但是如果我这样写:#include <stdio.h>

int main()
{
int x,y,z;
scanf("%d %d %d" , &x , &y , &z);

if ( x<60 && y<60 && z<60 )
{
    printf("1");
}else{
    printf("0");
}

return 0;

}
为什么会判错,请求解答,谢谢

恰好有一门课不及格,1门不及格 其他2门及格,你下面的判断是都不及格