用c语言编写某位同学第一学期有3门课程,第二学期有 5门课程,根据每门课程的得分情况,找出每 个学期中最高分和最低分。 第一学期:78,92,85 第二学期:82,68,77,95,89
时间: 2024-10-27 22:04:17 浏览: 23
在C语言中,你可以创建结构体来表示学生的信息,并通过动态数组存储每个学期的成绩。首先,定义一个结构体`Course`来存储课程名和分数,然后分别创建两个`Course`数组来存储每个学期的成绩。接着,遍历数组找到每个学期的最大值(最高分)和最小值(最低分)。以下是简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体表示一门课程
typedef struct {
char* name;
int score;
} Course;
// 找到数组中的最大值和最小值
int find_max_min(int scores[], int n, int* max_score, int* min_score) {
*max_score = scores[0];
*min_score = scores[0];
for (int i = 1; i < n; i++) {
if (scores[i] > *max_score) {
*max_score = scores[i];
}
if (scores[i] < *min_score) {
*min_score = scores[i];
}
}
return 0;
}
int main() {
// 创建第一学期和第二学期的课程数组
Course first_term[] = {{"数学", 78}, {"英语", 92}, {"物理", 85}};
Course second_term[] = {{"语文", 82}, {"化学", 68}, {"生物", 77}, {"历史", 95}, {"地理", 89}};
int first_term_scores[3] = {first_term[0].score, first_term[1].score, first_term[2].score};
int second_term_scores[5] = {second_term[0].score, second_term[1].score, second_term[2].score,
second_term[3].score, second_term[4].score};
int max_first_term, min_first_term;
int max_second_term, min_second_term;
// 分别计算每个学期的最大值和最小值
find_max_min(first_term_scores, 3, &max_first_term, &min_first_term);
find_max_min(second_term_scores, 5, &max_second_term, &min_second_term);
printf("第一学期最高分: %d, 最低分: %d\n", max_first_term, min_first_term);
printf("第二学期最高分: %d, 最低分: %d\n", max_second_term, min_second_term);
return 0;
}
```
当你运行这段代码,它会打印出每个学期的最高分和最低分。
阅读全文