mirror of
https://github.com/renbaoshuo/202401-programming-assignments.git
synced 2024-12-16 15:44:39 +00:00
1.8 KiB
1.8 KiB
6-5 结构体的最值
学生类型ST的定义如下:
typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST;
编写函数,返回指定学生数组中的男生或女生的最高分的地址(约定:整数0和1分别代表男和女)。
函数接口定义:
ST* MaxST(ST d[],int n,int k);//k=0|1
其中 d
是学生数组的初地址, n
是数组的长度, k
是查找的性别描述(值确保是0或1),函数须返回指定类型学生中的最高分者的地址,如果不存在,返回空地址。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#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;
}
/* 请在这里填写答案 */
输入样例:
第一行是记录个数,余下若干行是相关数据(以空格分隔,每行一个)。
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
输出样例:
输出男,女同学中的最高分(只需要找出并返回其地址,输入,输出由测试程序完成)。
Marry.MK,20201125,0,19,92.86
byi.beee,20201129,1,17,90.28