C语言射击选手的预赛和决赛成绩(环数)。(提示:预赛成绩和决赛成绩各-|||-用一个数组存放)求每个选手的总成绩。输出谁是第一名(假设每个选手的编号分别是 1-10)。 (要求:必须定义一个函数求最大值,再调用这个函数求谁是第一名)
时间: 2023-03-28 19:03:41 浏览: 157
预赛和决赛成绩可以用一个二维数组存放,每行表示一个选手的成绩,第一列表示预赛成绩,第二列表示决赛成绩。可以用一个循环计算每个选手的总成绩,并存放在一个一维数组中。然后定义一个函数,输入一个一维数组,返回数组中的最大值。最后在主函数中调用这个函数,找到最大值对应的选手编号,即为第一名。
代码如下:
```c
#include <stdio.h>
#define N 10 // 选手数量
int max(int arr[], int n); // 求最大值的函数
int main()
{
int scores[N][2]; // 预赛和决赛成绩
int total[N]; // 总成绩
int i, first;
// 输入成绩
printf("请输入每个选手的预赛和决赛成绩:\n");
for (i = ; i < N; i++) {
printf("选手%d:", i+1);
scanf("%d%d", &scores[i][], &scores[i][1]);
total[i] = scores[i][] + scores[i][1]; // 计算总成绩
}
// 找到第一名
first = max(total, N);
// 输出结果
printf("总成绩最高的选手是%d号,总成绩为%d环。\n", first+1, total[first]);
return ;
}
int max(int arr[], int n)
{
int i, max_index = ;
for (i = 1; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
return max_index;
}
```
阅读全文