用c语言,从键盘输入某班学生某门课的成绩和学号(最多不超过40人),当输入值为负值时,表示输入结束,用函数编程通过返回数组中最大元素的下标,查找并输出成绩的最高分及其所在的学生学号)
时间: 2024-05-14 20:18:28 浏览: 102
c代码-从键盘输入一个班(全班人数在15~20之间)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能: (1)录入每个学生的学号(学号:2016001~2016020)和考试成绩; (2)计算课程的总分和平均分;
下面是用C语言实现的代码:
```c
#include <stdio.h>
#define MAX 40
int maxScore(int score[], int stuNum[]);
// 定义函数,返回数组中最大元素的下标
int main()
{
int score[MAX], stuNum[MAX];
int i = 0, maxIndex;
while (i < MAX) {
printf("请输入学生学号和成绩(输入负数结束):\n");
scanf("%d %d", &stuNum[i], &score[i]);
if (score[i] < 0) { // 输入负数结束
break;
}
i++;
}
maxIndex = maxScore(score, stuNum); // 调用函数,返回最大值的下标
printf("最高分数:%d, 学生学号:%d\n", score[maxIndex], stuNum[maxIndex]);
return 0;
}
int maxScore(int score[], int stuNum[])
{
int i, maxIndex = 0;
for (i = 1; i < MAX; i++) {
if (score[i] > score[maxIndex]) {
maxIndex = i;
}
}
return maxIndex; // 返回最大值的下标
}
```
在这个代码中,我们定义了一个 `maxScore` 函数,用于返回数组中最大元素的下标。在主函数中,我们使用循环读入学生的学号和成绩,并存储在两个数组中。当输入的成绩为负数时,我们退出循环。最后,我们调用 `maxScore` 函数,获取最大值的下标,并输出该学生的学号和成绩。
阅读全文