如何使用C语言编程,不借助指针,实现功能:接收四名学生的姓名和三门课程的成绩,然后计算并打印出每个学生的平均分数以及完整的学生成绩表?
时间: 2024-12-22 12:12:48 浏览: 16
在C语言中,我们可以使用结构体(structs)来表示学生的信息,数组来存储成绩,并结合循环结构完成数据的输入、处理和输出。以下是实现这个功能的一个基本步骤:
1. **定义学生和成绩结构体**:
```c
typedef struct {
char name[50];
float scores[3]; // 代表三门课程的成绩
} Student;
```
2. **创建函数接收输入**:
```c
void input_students(Student students[], int numStudents) {
for (int i = 0; i < numStudents; i++) {
printf("请输入学生%d的姓名:", i + 1);
scanf("%s", students[i].name);
for (int j = 0; j < 3; j++) {
printf("请输入第%d门课程的成绩:", j + 1);
scanf("%f", &students[i].scores[j]);
}
}
}
```
3. **计算平均分并打印结果**:
```c
void calculate_average(Student students[], int numStudents) {
for (int i = 0; i < numStudents; i++) {
float sum = 0;
for (int j = 0; j < 3; j++) {
sum += students[i].scores[j];
}
float average = sum / 3.0;
printf("学生 %s 的平均分数是: %.2f\n", students[i].name, average);
}
}
4. **打印完整学生成绩表**:
```c
void print_scores(Student students[], int numStudents) {
printf("\n学生姓名\t语文\t数学\t英语\n");
for (int i = 0; i < numStudents; i++) {
for (int j = 0; j < 3; j++) {
printf("%s\t%.2f\t", students[i].name, students[i].scores[j]);
}
printf("\n");
}
}
```
5. **主程序**:
```c
int main() {
const int numStudents = 4;
Student students[numStudents];
input_students(students, numStudents);
calculate_average(students, numStudents);
print_scores(students, numStudents);
return 0;
}
```
阅读全文