c语言编译一个输入15名学生考试成绩输出平均数,最高数,学号
时间: 2024-12-19 18:19:28 浏览: 14
在C语言中,你可以通过以下步骤编写程序来完成这个任务:
首先,你需要定义数组来存储学生的成绩,并使用结构体来组织学号、姓名等信息。这里假设我们仅关注分数。然后,创建一个函数分别计算平均分、最高分并遍历数组找到最高分对应的学号。
```c
#include <stdio.h>
// 定义结构体表示学生信息
typedef struct {
int score; // 成绩
} Student;
// 函数声明
void input_scores(Student scores[], int num_students);
double calculate_average(Student scores[], int num_students);
int find_max_score(Student scores[], int num_students);
int main() {
int num_students = 15;
Student scores[num_students];
// 输入学生成绩
input_scores(scores, num_students);
// 计算并输出结果
double average = calculate_average(scores, num_students);
printf("平均分: %.2f\n", average);
int max_score_index = find_max_score(scores, num_students);
printf("最高分的学号: %d, 分数: %d\n", max_score_index + 1, scores[max_score_index].score); // 加1是因为索引从0开始
return 0;
}
// 输入函数
void input_scores(Student scores[], int num_students) {
for (int i = 0; i < num_students; i++) {
printf("请输入第%d位学生的分数: ", i+1);
scanf("%d", &scores[i].score);
}
}
// 平均值计算函数
double calculate_average(Student scores[], int num_students) {
double sum = 0;
for (int i = 0; i < num_students; i++) {
sum += scores[i].score;
}
return sum / num_students;
}
// 找到最高分的索引函数
int find_max_score(Student scores[], int num_students) {
int max_index = 0;
for (int i = 1; i < num_students; i++) { // 避免比较第一个元素
if (scores[i].score > scores[max_index].score) {
max_index = i;
}
}
return max_index;
}
```
运行这个程序时,它会提示用户依次输入15个学生的分数,然后显示他们的平均分以及最高分所对应的学号。
阅读全文