mirror of
https://github.com/renbaoshuo/202401-programming-assignments.git
synced 2024-12-16 15:44:39 +00:00
67 lines
1.8 KiB
Markdown
67 lines
1.8 KiB
Markdown
# 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
|
||
```
|