课程。 1、求第一门课程的平均分; 2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩; 3、找出平均成绩在90分以上或全部课程成绩在85分以上的学生。"/>
有一个班4个学生,5门课程。 1、求第一门课程的平均分; 2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩; 3、找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
/*有一个班4个学生,5门课程。
1、求第一门课程的平均分;
2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩;
3、找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
分别编3个函数实现以上3个要求*/#include <stdio.h>int main()
{int fun1(float (*p)[6]);int fun2(float (*p)[6]);int fun3(float (*p)[6]);float a[4][6];int i,j;float (*p)[6];p = a;printf("请输入学号和成绩:\n");for(i = 0;i < 4;i++){for(j = 0;j < 6;j++){scanf("%f",&a[i][j]);}}fun1(p);fun2(p);fun3(p);} //求第一门成绩的平均分
int fun1(float (*p)[6])
{float sum = 0.0;int i;for(i = 0;i < 4;i++){sum += *(*(p + i) + 1);}printf("平均分是:%f\n",sum/4);
}//找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩
int fun2(float (*p)[6])
{int i,j,n,flag = 0;float sum;for(i = 0;i< 4;i++){n = 0;sum = 0.0;for(j = 1;j < 6;j++){if(*(*(p + i) + j) < 60){n ++;}sum += *(*(p + i) + j); }if(n >= 2){printf("学号为%f的学生有超过两门成绩不合格\n",*(*(p + i) + 0));printf("成绩有:\n");for(j = 1;j < 6;j++){printf("%f ",*(*(p + i) + j));}printf("\n平均成绩是:%f\n",sum/5);flag = 1;}}if(flag == 0){printf("未找到!\n"); }
}//找出平均成绩在90分以上或全部课程成绩在85分以上的学生
int fun3(float (*p)[6])
{int i,j,n;float sum;for(i = 0;i < 4;i++){sum = 0.0;n = 0;for(j = 1;j < 6;j++){if(*(*(p + i) + j) >= 85){n++;}sum += *(*(p + i) + j);}if(sum / 5 >= 90 || n == 5){printf("符合条件3的学生有%f\n",*(*(p + i) + 0));}}
}
谭浩强C程序设计(第四版)p292第15题
这个题写成结构体输出结果更直观
/*有一个班4个学生,5门课程。
1、求第一门课程的平均分;
2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩;
3、找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
分别编3个函数实现以上3个要求*/#include <stdio.h>typedef struct Student{char c[8];//学号float a[5];//成绩
}Student;int main()
{int fun1(Student *p);int fun2(Student *p);int fun3(Student *p);int i,j;Student stu[4];Student *p;p = stu;printf("请输入学号和成绩:\n");for(i = 0;i < 4;i++){scanf("%s",stu[i].c);for(j = 0;j < 5;j++){scanf("%f",&stu[i].a[j]);}}fun1(p);fun2(p);fun3(p);
}//求第一门成绩的平均分
int fun1(Student *p)
{float sum = 0.0;int i;for(i = 0;i < 4;i++){sum += p[i].a[0]; }printf("第一门成绩的平均分是:%f\n",sum/4);
} //找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩
int fun2(Student *p)
{int i,j,n,flag = 0;float sum;for(i = 0;i< 4;i++){n = 0;sum = 0.0;for(j = 0;j < 5;j++){if(p[i].a[j] < 60){n ++;}sum += p[i].a[j]; }if(n >= 2){printf("学号为%s的学生有超过两门成绩不合格\n",p[i].c);printf("成绩有:\n");for(j = 0;j < 5;j++){printf("%f ",p[i].a[j]);}printf("\n平均成绩是:%f\n",sum/5);flag = 1;}}if(flag == 0){printf("未找到!\n"); }
}//找出平均成绩在90分以上或全部课程成绩在85分以上的学生
int fun3(Student *p)
{int i,j,n;float sum;for(i = 0;i < 4;i++){sum = 0.0;n = 0;for(j = 0;j < 5;j++){if(p[i].a[j] >= 85){n++;}sum += p[i].a[j];}if(sum / 5 >= 90 || n == 5){printf("符合条件3的学生学号是:%s\n",p[i].c);}}
}
这样学号和成绩就是不同的数据类型了
更多推荐
有一个班4个学生,5门课程。 1、求第一门课程的平均分; 2、找出有两门课程以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩; 3、找出平均成绩在90分
发布评论