用c语言编写程序实现查找一个班50位同学中成绩最高同学的成绩和序号,以及计算出该班的平均成绩,并输出到屏幕,要求用数组实现。
时间: 2024-12-17 21:29:14 浏览: 1
在C语言中,我们可以创建一个结构体来存储学生的姓名、分数和序号,然后用数组来存储所有学生的信息。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int score;
int index; // 序号从0开始
} Student;
// 初始化学生数组
#define NUM_OF_STUDENTS 50
Student students[NUM_OF_STUDENTS];
void find_highest_score(int *index) {
*index = -1; // 初始化最高分索引为-1
int highest_score = students[0].score; // 假设第一个学生的分数是最高分
for (int i = 1; i < NUM_OF_STUDENTS; i++) {
if (students[i].score > highest_score) {
highest_score = students[i].score;
*index = i; // 更新最高分索引
}
}
}
double calculate_average() {
double total_score = 0;
for (int i = 0; i < NUM_OF_STUDENTS; i++) {
total_score += students[i].score;
}
return total_score / NUM_OF_STUDENTS;
}
int main() {
// 初始化学生数据(这里仅做示例,实际应用中需要用户输入)
for (int i = 0; i < NUM_OF_STUDENTS; i++) {
strcpy(students[i].name, "学生" + i); // 假设名字为连续编号
students[i].score = rand() % 100 + 1; // 随机生成1-100之间的分数
students[i].index = i;
}
int max_index;
find_highest_score(&max_index);
printf("成绩最高的同学是:%s, 成绩:%d, 序号:%d\n", students[max_index].name, students[max_index].score, max_index);
double average = calculate_average();
printf("班级平均成绩:%.2f\n", average);
return 0;
}
```
在这个程序中,`find_highest_score`函数用于找到最高分的学生信息,`calculate_average`函数计算平均分。注意,为了简化示例,我使用了随机数生成分数,实际项目中可能需要更完善的输入处理。
阅读全文