用C语言实现用一个一维数组,存十个同学的成绩,找出最高分并输出
时间: 2024-02-05 18:10:27 浏览: 83
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int scores[10] = {85, 76, 92, 88, 90, 77, 82, 91, 79, 95}; // 十个同学的成绩
int max_score = scores[0]; // 初始最高分为第一个同学的成绩
int i;
// 遍历数组,找出最高分
for (i = 1; i < 10; i++) {
if (scores[i] > max_score) {
max_score = scores[i];
}
}
// 输出最高分
printf("最高分为:%d\n", max_score);
return 0;
}
```
代码中定义了一个整型数组 `scores`,存放了十个同学的成绩。然后定义了一个变量 `max_score`,初始值为第一个同学的成绩。接着使用 `for` 循环遍历数组,比较每个同学的成绩与 `max_score` 的大小,如果大于 `max_score`,则将其赋值给 `max_score`。最后输出 `max_score` 即为最高分。
相关问题
用C语言编写,有一个一维数组,内放10个学生成绩。写一个函数,当主函数调用此函数后,能求出平均分,最高分和最低分
在C语言中,你可以创建一个函数来计算一维数组的成绩统计信息,如平均分、最高分和最低分。首先,你需要声明并初始化一个包含10个成绩的数组,然后定义一个结构体或者联合体存放这些信息,最后编写函数处理这些计算。
```c
#include <stdio.h>
// 假设我们有结构体来存储单个学生的信息
typedef struct {
int score;
int index; // 学生在数组中的索引,用于找出最高分和最低分对应的元素
} Student;
// 函数来计算平均分、最高分和最低分
void calculate_scores(int scores[], int size) {
float total = 0.0;
Student max_score = {scores[0], 0};
Student min_score = {scores[0], 0};
for (int i = 0; i < size; i++) {
total += scores[i]; // 累加总分数
if (scores[i] > max_score.score) {
max_score.score = scores[i];
max_score.index = i;
}
if (scores[i] < min_score.score) {
min_score.score = scores[i];
min_score.index = i;
}
}
float avg_score = total / size; // 计算平均分
printf("平均分: %.2f\n", avg_score);
printf("最高分: %d, 来自第%d个学生\n", max_score.score, max_score.index + 1);
printf("最低分: %d, 来自第%d个学生\n", min_score.score, min_score.index + 1);
}
// 主函数
int main() {
int scores[] = {85, 92, 78, 99, 88, 76, 94, 81, 87, 91}; // 示例成绩数组
int size = sizeof(scores) / sizeof(scores[0]);
calculate_scores(scores, size);
return 0;
}
```
c语言一个班10个同学,存放在一个一维数组中,要求找出其中成绩最高的学生成绩和该学生序号
在C语言中,如果你有一个包含10名同学的成绩的一维数组,可以按照以下步骤找到成绩最高的学生成绩及其对应的序号:
1. 假设数组名为`scores`,长度为10,每个元素存储的是学生的分数,索引从0开始。
```c
int scores[10]; // 假设数组已初始化
```
2. 定义两个变量,`maxScore`用于保存当前最高分,`maxIndex`用于记录对应的最大分数的学生序号。初始值分别为第一个学生的分数和0。
```c
int maxScore = scores[0];
int maxIndex = 0;
```
3. 使用for循环遍历数组,从第二个元素开始比较,因为我们需要找的是最高的分数,不是第一个。
```c
for (int i = 1; i < 10; i++) {
if (scores[i] > maxScore) {
maxScore = scores[i];
maxIndex = i;
}
}
```
4. 循环结束后,`maxScore`就是最高分,`maxIndex`就是对应的学生序号。
5. 如果需要,可以在程序的适当位置打印出结果:
```c
printf("最高分:%d 分,对应序号:%d", maxScore, maxIndex);
```
阅读全文