求一个班学生成绩的平均分最高分最低分用c++实现
时间: 2024-04-29 14:22:30 浏览: 14
请见以下代码实现:
```c
#include <stdio.h>
int main()
{
int n, sum = 0, max = -1, min = 101;
printf("请输入学生人数:");
scanf("%d", &n);
int score[n];
printf("请输入学生成绩:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &score[i]);
if (score[i] > max) {
max = score[i];
}
if (score[i] < min) {
min = score[i];
}
sum += score[i];
}
printf("平均分为: %.2f,最高分为:%d,最低分为:%d\n", (float) sum / n, max, min);
return 0;
}
```
注意:本代码仅供参考,实际应用中需要考虑输入数据的合法性和边界情况。
相关问题
C++中如何用类来实现多位学生成绩、平均分最高分、最低分的计算
可以定义一个名为 Student 的类,其中包含学生姓名、学号、成绩等属性,以及计算平均分、最高分、最低分的方法。可以使用数组或者列表来存储多个学生的信息,然后遍历数组或者列表,调用计算方法得到平均分、最高分、最低分等信息。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[20];
int id;
float score;
} Student;
typedef struct {
Student students[MAX_STUDENTS];
int count;
} Class;
void add_student(Class *c, char *name, int id, float score) {
if (c->count >= MAX_STUDENTS) {
printf("Error: too many students\n");
return;
}
Student s;
strcpy(s.name, name);
s.id = id;
s.score = score;
c->students[c->count++] = s;
}
float get_average_score(Class *c) {
float sum = 0;
for (int i = 0; i < c->count; i++) {
sum += c->students[i].score;
}
return sum / c->count;
}
float get_max_score(Class *c) {
float max = 0;
for (int i = 0; i < c->count; i++) {
if (c->students[i].score > max) {
max = c->students[i].score;
}
}
return max;
}
float get_min_score(Class *c) {
float min = 100;
for (int i = 0; i < c->count; i++) {
if (c->students[i].score < min) {
min = c->students[i].score;
}
}
return min;
}
int main() {
Class c;
c.count = 0;
add_student(&c, "Tom", 1001, 80);
add_student(&c, "Jerry", 1002, 90);
add_student(&c, "Alice", 1003, 85);
printf("Average score: %.2f\n", get_average_score(&c));
printf("Max score: %.2f\n", get_max_score(&c));
printf("Min score: %.2f\n", get_min_score(&c));
return 0;
}
```
这个程序定义了一个名为 Student 的结构体,其中包含学生姓名、学号、成绩等属性。另外还定义了一个名为 Class 的结构体,其中包含一个 Student 类型的数组和一个计数器 count,用于存储多个学生的信息。程序还定义了 add_student、get_average_score、get_max_score、get_min_score 等函数,用于添加学生、计算平均分、最高分、最低分等信息。在 main 函数中,我们创建了一个 Class 类型的变量 c,添加了三个学生的信息,然后调用计算函数得到平均分、最高分、最低分等信息。
用C++将分数统计改为用成绩类来实现,输出学生的平均分最高分最低分
可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[20];
int score;
} Grade;
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
Grade *grades = (Grade *)malloc(n * sizeof(Grade));
int sum = 0, max = 0, min = 100;
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名和成绩:", i + 1);
scanf("%s %d", grades[i].name, &grades[i].score);
sum += grades[i].score;
if (grades[i].score > max) {
max = grades[i].score;
}
if (grades[i].score < min) {
min = grades[i].score;
}
}
printf("平均分:%f\n", (float)sum / n);
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
free(grades);
return 0;
}
```
这段代码使用了结构体 Grade 来存储每个学生的姓名和成绩,通过循环输入每个学生的信息,并统计总分、最高分和最低分。最后输出平均分、最高分和最低分。