c语言利用指向结构体变量的指针编写程序,求某位参赛选手的得分(保留两位小数)。得分的计算方法是:去掉一个最高分和最低分然后求平均值。已知评委有6人,结构体类型声明如下: struct result { char name[20]; float score[6]; float aver; }; 上面的成员分别代表选手姓名,6个评委给出选手的成绩,求平均数。用一个指针变量指向选手(如 player选手为结构变量,p为结构类型的指针,指向选手)。 算法思路:设置三个变量求和sum,求大者max,求小者min ,去掉最大和最小,平均值(sum-max-min)/4。 输入输出规则:输入姓名(可以gets()函数,如gets(p->name)),输出姓名和平均值。(注意输出姓名后“:”)
时间: 2024-03-16 08:45:42 浏览: 27
下面是一个按照题目要求编写的C语言程序:
```c
#include <stdio.h>
#include <string.h>
struct result {
char name[20];
float score[6];
float aver;
};
void calculate(struct result *player) {
float sum = 0, max = player->score[0], min = player->score[0];
for (int i = 0; i < 6; i++) {
sum += player->score[i];
if (player->score[i] > max) {
max = player->score[i];
}
if (player->score[i] < min) {
min = player->score[i];
}
}
player->aver = (sum - max - min) / 4;
}
int main() {
struct result player;
struct result *p = &player;
printf("请输入选手姓名:\n");
gets(p->name);
for (int i = 0; i < 6; i++) {
printf("请输入第%d个评委的评分:\n", i+1);
scanf("%f", &p->score[i]);
}
calculate(p);
printf("%s: %.2f\n", p->name, p->aver);
return 0;
}
```
程序中定义了一个结构体 `result`,包含三个成员:选手姓名、6个评委的成绩和选手的平均成绩。在主函数中,使用 `gets` 函数读入选手姓名,使用 `scanf` 函数读入6个评委的成绩。然后调用 `calculate` 函数计算选手的平均成绩。注意,在 `calculate` 函数中使用指针访问结构体成员时,需要使用箭头符号 `->`。最后,输出选手姓名和平均成绩,注意输出姓名后要加上一个冒号。
在 `calculate` 函数中,使用三个变量 `sum`、`max` 和 `min` 分别记录总分、最高分和最低分。然后遍历评委的成绩数组,累加得分并更新最高分和最低分。最后计算平均分时,用总分减去最高分和最低分,再除以4即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)