1
0
mirror of https://github.com/renbaoshuo/202401-programming-assignments.git synced 2024-12-16 15:44:39 +00:00
202401-programming-assignments/【实践课外】15.结构体1/6-5 结构体的最值.md

67 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2024-12-11 03:41:51 +00:00
# 6-5 结构体的最值
学生类型ST的定义如下
typedef struct student{
char name[10],id[10];
int gender;
int age;
double scored;
} ST;
编写函数返回指定学生数组中的男生或女生的最高分的地址约定整数0和1分别代表男和女
### 函数接口定义:
```c
ST* MaxST(ST d[],int n,int k);//k=0|1
```
其中 `d` 是学生数组的初地址, `n`是数组的长度, `k` 是查找的性别描述值确保是0或1函数须返回指定类型学生中的最高分者的地址如果不存在返回空地址。
### 裁判测试程序样例:
```c
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
#include <stdlib.h>
typedef struct student{
char name[10],id[10];
int gender;
int age;
double scored;
} ST;
void output(ST *d){//输出一个记录
if(d==NULL) {printf("null\n");return;}
printf("%s,%s,%d,%d,%4.2f\n",d->name,d->id,d->gender,d->age,d->scored);
}
ST* InitData(int n);//从输入设备上输入相关数据,略去不表
ST* MaxST(ST d[],int n,int k);//k=0|1 <--需要完成的函数:找最值
int main(){
int i,n;scanf("%d\n",&n);
ST *p=InitData(n);
output(MaxST(p,n,0));
output(MaxST(p,n,1));
free(p);
return 0;
}
/* 请在这里填写答案 */
```
### 输入样例:
第一行是记录个数,余下若干行是相关数据(以空格分隔,每行一个)。
```in
6
Marry.MK 20201125 0 19 92.86
J.Mark 20201185 0 17 90.93
rouh.M 20201102 1 18 79.51
byi.beee 20201129 1 17 90.28
floyd.Fd 20201150 0 17 81.16
grdda 20201146 1 19 85.52
```
### 输出样例:
输出男,女同学中的最高分(只需要找出并返回其地址,输入,输出由测试程序完成)。
```out
Marry.MK,20201125,0,19,92.86
byi.beee,20201129,1,17,90.28
```