//有一个班4个学生,5门课程。
//1.求第1门课程的平均分
//2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩
//3.找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
//分别编3个函数实现以上3个要求
#include <stdio.h>
float average(float(*p)[5], int n);
void search(float(*p)[5], int n, int m);
void per(float(*p)[5], int n, int m);
int main() {
float a[4][5];
int i, j;
//输入这4个学生的5门课程成绩
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
scanf_s("%f", &a[i][j]);
}
}
//求第一门课程的平均分
printf("%f\n", average(a, 4));
printf("\n");
//2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩
search(a, 4, 5);
//3.找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
per(a, 4, 5);
return 0;
}
//求第一门课程的平均分
float average(float(*p)[5], int n) {
int i;
float sum = 0, aver;
for (i = 0; i < n; i++) {
sum = sum + *(*(p + i));
}
aver = sum / n;
return aver;
}
//2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩
void search(float(*p)[5], int n, int m) {
int i, j, k = 0, r;
float sum = 0, aver;
for (i = 0; i < n; i++) {
k = 0;
for (j = 0; j < m; j++) {
if (*(*(p + i) + j) < 60) {
k++;
if (k >= 2) {
printf("\n");
printf("%d号学生有两门课程不及格", i + 1);
for (r = 0, sum = 0; r < m; r++) {
sum = sum + *(*(p + i) + r);
printf("\n");
printf("%f\t", *(*(p + i) + r));
}
aver = sum / m;
printf("\n");
printf("%f", aver);
}
}
}
}
}
//3.找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
void per(float(*p)[5], int n, int m) {
int i, j, k = 0,r=0;
float sum = 0, aver;
for (i = 0; i < n; i++) {
sum = 0;
r = 0;
for (j = 0; j < m; j++) {
sum = sum + *(*(p + i) + j);
if(* (*(p + i) + j) > 85){
r++;
if (r == 5) {
for (k = 0; k < m; k++) {
printf("\n");
printf("%f\t", *(*(p + i) + k));
printf("\n");
sum = 0;
}
}
}
}
aver = sum / m;
if (aver > 90) {
for (k = 0; k < m; k++) {
printf("%f\t", *(*(p + i) + k));
printf("\n");
}
}
}
}
【C】8.15有一个班4个学生,5门课程。 1.求第1门课程的平均分2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩 3.找出平均成绩在90分以上或全部课程成绩在85分
最新推荐文章于 2022-10-07 15:08:40 发布