C语言编程一个调用ReadScore和FindMax函数,从键盘输入某班学生某门课的成绩和学号,当输入负值时,表示输入结束,用函数编程通过返回数组中最大元素的下标,查找并输出成绩的最高分及其对应的学生学号
时间: 2023-06-08 14:04:29 浏览: 186
好的,这是一个编程问题。以下是代码实现:
```
#include <stdio.h>
#define MAX_SIZE 100 // 最大学生数
int FindMax(float score[], int n); // 查找最高分函数声明
int ReadScore(float score[], int num[]); // 读取学生成绩函数声明
int main() {
float score[MAX_SIZE];
int num[MAX_SIZE];
int n;
n = ReadScore(score, num); // 读取学生成绩
int index = FindMax(score, n); // 查找最高分下标
printf("最高分为:%.2f,对应学生学号为:%d", score[index], num[index]);
return 0;
}
int ReadScore(float score[], int num[]) {
int i = 0;
do {
printf("请输入学生学号:");
scanf("%d", &num[i]);
if (num[i] < 0) {
break; // 输入负值时,结束
}
printf("请输入学生成绩:");
scanf("%f", &score[i]);
i++;
} while (i < MAX_SIZE);
return i; // 返回学生数
}
int FindMax(float score[], int n) {
int index = 0;
for (int i = 1; i < n; i++) {
if (score[i] > score[index]) {
index = i;
}
}
return index;
}
```
阅读全文