c语言知识(找出大于2门成绩不及格的学生)
1.首先定义一个学生结构体(结构体中包含一个Score结构体):
typedef struct score{
float chinese;//语文成绩
float english;//英语成绩
float history;//历史成绩
}Score;
typedef struct stu{
char name[20];//姓名
char sex;//性别
Score _score;//分数
} Student;
2.定义一个找出成绩至少2门不及格的学生信息的函数
void getStudentsOfFail(Student *stu,int count){
int temp=0;//用于计数 不及格的成绩的个数
for(int i=0;i<count;i++){
if((stu+i)->_score.chinese<60){
temp++;
}
if((stu+i)->_score.english<60){
temp++;
}
if((stu+i)->_score.history<60){
temp++;
}
if(temp>2){
printf("学生的信息为:姓名:%s 性别:%c ",(stu+i)->name,(stu+i)->sex);
}
}
}
3.这样就可以打印出成绩至少两门不及格的学生的信息
4.反思:做这个题的时候我思维比较混乱,也想了一个笨的办法,把所有符合条件的情况都写在判断里,最后发现这样做效率比较低,不得不说,身边有一些朋友同学确实善于思维,我觉得这种方法比较好,学习一下顺便培养一下自己这方面欠缺的能力.