有一个班4个学生,5门课程。1. 求第一门课程的平均分; 2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩; 3.找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编三个函数实现以上三个要求。示例:按姓名,学号,第一门成绩,第二门成绩。第三门成绩,第四门成绩,第五门成绩顺序依次输入信息,不同信息之间以空格隔开。每输入完成一名同学信息,换行后输入下一位同学信息。之后,系统输出第一门课程平均分,换行输出第2问中的学生信息,换行输出第3问中的学生信息。例如, 用户输入: 张三 1230 94 95 95 95 100 Lisi 4560 90 50 50 50 90 7890 王武 90 90 95 80 80 6540 90 40 60 90 100 91 4560 系统输出: 90 lisi 50 50 50 90 66 1230 94 张山 95 95 95 100 66 100 格式要点注意: 为了方便可能使用的循环输出,<>与<>后面是各有一个空格,请同学们注意 用c++语言来写
时间: 2023-06-08 12:05:13 浏览: 147
#include<stdio.h>
#include<string.h>
void question1(float score[][5], int n) {
float sum = 0;
for(int i=0; i<n; i++) {
sum += score[i][0];
}
float avg = sum / n;
printf("%.0f\n", avg);
}
void question2(float score[][5], int n) {
for(int i=0; i<n; i++) {
int failCount = 0;
for(int j=0; j<5; j++) {
if(score[i][j] < 60) {
failCount++;
}
}
if(failCount >= 2) {
printf("%.0f ", score[i][0]);
for(int k=1; k<6; k++) {
printf("%.0f ", score[i][k]);
}
printf("%.0f\n", (score[i][1]+score[i][2]+score[i][3]+score[i][4]+score[i][5])/5.0);
}
}
}
void question3(float score[][5], int n) {
for(int i=0; i<n; i++) {
float avg = (score[i][1]+score[i][2]+score[i][3]+score[i][4]+score[i][5])/5.0;
if(avg >= 85 || score[i][1] >= 90 || score[i][2] >= 90 || score[i][3] >= 90 || score[i][4] >= 90 || score[i][5] >= 90) {
printf("%.0f ", score[i][0]);
for(int k=1; k<6; k++) {
printf("%.0f ", score[i][k]);
}
printf("%.0f\n", avg);
}
}
}
int main() {
float score[100][5];
int n = 0;
char input[256];
while(fgets(input, 256, stdin)) {
char *p = strtok(input, " ");
score[n][0] = atof(p); // 学生学号转为float存储
for(int i=1; i<6; i++) {
p = strtok(NULL, " ");
score[n][i] = atof(p); // 课程成绩转为float存储
}
n++;
}
question1(score, n);
question2(score, n);
question3(score, n);
return 0;
}
阅读全文