从键盘输入10个同学的成绩到一个一维数组中,求出最高分和次高分及其所对应的下标。
时间: 2024-03-03 14:52:54 浏览: 14
以下是一个C语言代码示例,用于从键盘输入10个同学的成绩到一个一维数组中,并求出最高分和次高分及其所对应的下标:
```c
#include <stdio.h>
int main() {
int scores[10], max = -1, sec_max = -1, max_index = -1, sec_max_index = -1;
for (int i = 0; i < 10; i++) {
printf("请输入第%d个同学的成绩:", i + 1);
scanf("%d", &scores[i]);
if (scores[i] > max) {
sec_max = max;
sec_max_index = max_index;
max = scores[i];
max_index = i;
} else if (scores[i] > sec_max) {
sec_max = scores[i];
sec_max_index = i;
}
}
printf("最高分:%d,下标:%d\n次高分:%d,下标:%d", max, max_index, sec_max, sec_max_index);
return 0;
}
```
以上代码中,我们首先定义了一个包含10个元素的一维数组scores,用于存储同学们的成绩。然后,我们使用for循环语句从键盘上依次输入每个同学的成绩,并在输入过程中实时更新最高分和次高分及其所对应的下标。具体来说,我们使用了两个变量max和sec_max来分别记录当前已经遍历到的最高分和次高分,同时使用两个变量max_index和sec_max_index来分别记录最高分和次高分所对应的下标。在每次输入一个成绩时,我们先判断该成绩是否大于当前最高分,如果是,则将当前最高分和次高分的值、下标分别更新;如果该成绩不大于当前最高分但大于当前次高分,则将当前次高分的值、下标更新。最终,我们输出最高分和次高分及其所对应的下标即可。