c语言分别输入一个班级里学生人数,每名学生成绩,求所有学生的平均成绩,保留到小数点后两位
时间: 2024-12-12 16:24:27 浏览: 7
在 C 语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,你需要定义一个结构体 `Student` 来存储每个学生的信息,包括姓名和成绩。例如:
```c
typedef struct {
char name[50]; // 学生名字
float score; // 成绩
} Student;
```
2. 定义一个全局变量来存储学生总数和总成绩:
```c
int total_students = 0;
float total_score = 0;
```
3. 编写函数来获取用户输入:
```c
void inputStudents() {
int i;
printf("请输入班级的学生人数: ");
scanf("%d", &total_students);
for (i = 0; i < total_students; i++) {
Student student;
printf("请输入第 %d 名学生的成绩: ", i + 1);
scanf("%f", &student.score);
total_score += student.score;
}
}
```
4. 创建一个计算平均分并保留两位小数的函数:
```c
#include <stdio.h>
#include <stdarg.h> // 需要包含va_list用于格式化输出
// 使用stdarg.h库的vprintf函数来格式化输出,支持小数位指定
void printAverage(float average) {
double formatted_average = round(average * 100) / 100.0; // 四舍五入到小数点后两位
vprintf("所有学生的平均成绩为: %.2f\n", formatted_average);
}
int main() {
inputStudents();
if (total_students > 0) {
float avg = total_score / total_students;
printAverage(avg);
} else {
printf("没有输入任何学生数据。\n");
}
return 0;
}
```
当你运行程序时,它会提示你依次输入每个学生的成绩,最后计算并打印出平均成绩,保留小数点后两位。
阅读全文