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
|
|||
|
```
|