C语言从键盘输入3门课程,3位同学的成绩,计算总分和平均分,并实现查询功能(从键盘输入学号,查询学生的信息,指针)。
时间: 2023-12-02 10:06:43 浏览: 324
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,这是一个关于C语言的问题。下面是代码实现,包括输入成绩、计算总分和平均分以及查询学生信息的功能。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 3 // 课程数量
#define LEN 10 // 学号长度
// 定义学生结构体
struct student {
char id[LEN]; // 学号
float grade[NUM]; // 成绩
float total; // 总分
float average; // 平均分
};
// 输入学生信息
void input(struct student *stu, int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", stu[i].id);
for (j = 0; j < NUM; j++) {
printf("请输入第%d个学生的第%d门课成绩:", i+1, j+1);
scanf("%f", &stu[i].grade[j]);
stu[i].total += stu[i].grade[j]; // 计算总分
}
stu[i].average = stu[i].total / NUM; // 计算平均分
}
}
// 查询学生信息
void search(struct student *stu, int n) {
char sid[LEN];
printf("请输入要查询的学生学号:");
scanf("%s", sid);
int i, j;
for (i = 0; i < n; i++) {
if (strcmp(stu[i].id, sid) == 0) { // 学号匹配成功
printf("学号:%s\n", stu[i].id);
printf("成绩:");
for (j = 0; j < NUM; j++) {
printf("%.1f ", stu[i].grade[j]);
}
printf("\n");
printf("总分:%.1f\n", stu[i].total);
printf("平均分:%.1f\n", stu[i].average);
return;
}
}
printf("未找到该学生信息!\n");
}
int main() {
int n = 3;
struct student stu[n];
input(stu, n); // 输入学生信息
search(stu, n); // 查询学生信息
return 0;
}
```
在这个程序中,我们定义了一个结构体 `struct student` 来保存学生信息,包括学号和成绩。我们使用了一个数组来保存多个学生的信息。在 `input` 函数中,我们首先输入学号,然后再输入每门课的成绩,并计算每个学生的总分和平均分。在 `search` 函数中,我们输入要查询的学生学号,然后遍历数组查找匹配的学生信息,如果找到了,则输出该学生的信息,否则输出提示信息。
希望这个程序能够帮到你!
阅读全文