编程题5(结构体)
结构体编程题类型 1、结构体查找统计(3/4) 2、结构体查找排序(1/1) 3、结构体链表(0/1) 方法 1、结构体数组和链表试题的类型,常见的有查找指定条件的值、求最大(小)值、排序等。 方法与一般数组的相同。 注意事项 1、.结构体(数组)和链表变量不同于一般变量(数组)的地方就只在于“名字有点长”。(用 成员运算符或- 运算符)。 一、结构体查找统计 1.1. 学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数firn,它 的功能是把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回. 例如输入的分数范围是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学 生数据.主函数中将把60放在low中把69放在high中. includestdio.h define N 16 typedef struct ( char num[10]; int s; }STREC; int fun(STREC *a,STREC *b,int l,int h) { int i,j,n; for(i0J0,n0;iN;i)( if(a[i].sl a[i].sh)( b[j]a[i]; j; n; } } return n; main STREC s[N]{nGA005,,85},GA003M,76}, {”GA002”,69}, {”GA004”,85}, {”GAOO 1 ”,96}, {”GA007”,72},{”GA008”,64},{”GA006”,87}, {”GA015”,85},{”GA013”,94},{”GA012”,64}, {”GA014”,91},{”GA011”,90},{”GA017”,64}, {”GA018”,64},{”GA016”,72}}; STREC h[N]; inti,n,low,high,t; printfEnter 2 integer number low high ; scanfdd,low,high; ifhighlow thigh;highlow;lowt;} nfun s,h,low,high; printf *The students data between dd\n,low,high; for i0;ivn;i printf s 4d\n,h[i].num,h[i].s; printf H\nn; } 1.2. 已知学生的记录由学号和学习的成绩构成,N名学生的数据已存人a结构体数组中。请编写函数fun, 函数的功能是找出成绩最低的学生记录,通过形参返回主函数规定只有一个最低分。 include stdio.h include string.h define N 10 typedef struct ss char num[10]; int s; }STU; void fun STU a[],STU *s { int i; *sa[0]; fori0;iN;i ifa[i].ss-s *sa[i]; } main { STU a[N]{{”A01”,81},{”A02”,89},{”A03”,66}, {” A04”,87}, {” A05 ”,77}, {” A06”,90}, {” A07”,79}, {” A08”,61}, {” A09”,80}, {”A10”,71}},m; int i; printf”*******The original data *****\n”; fori0;iN;i printfNo s Markd\n,a[i].num,a[i].s; funa,m; printf”*******THE RESULT ********、/; printfnThis lowests,d\n,m.num,m.s; } 1.3. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun, 它的功能是把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n 传回,平均分通过函数值返回。 includestdio. h define N 12 typedef struct char num[10]; double s; }STREC; double funSTREC *a,STREC*b,int *n { Int Ij; Double su } main STREC s[N]{{”GA05”,85},{”GA03”,76}, {”GA02”,69}, {”GA04” ,85}, {”GA01 ” ,91}, {”GA07”,72},{”GA08”,64},{”GA06”,87}, {”GA09”,60},{”GAll”,79},{”GA12”,73}, {”GA10”,90}}; STREC h[N]t; int i,n; double ave; avefuns,h,n; printfnThe d student data which is higher than 7.3f\n,n,ave; fori0;in;i printfs 4.1 Rn ” ,h [i]. num,h[i].s; printfn\nn; } 1.4. 学生的记录由学号和成绩组成,N名学生的记录数据已在主函数中放入结构体数组s中,请编写函数 fun,它的功能是把分数最低的学生数据放在b所指的数组中。注意分数最低的学生可能不止一个,函 数返回分数最低的学生的人数。 includestdio.h define N 16 typedef struct { char num[10]; int s; STREC; int funSTREC *a,STREC *b } main { STREC s[N]{{”GA05”,85},{”GA03”,76}, ”GA02”,69}, {”GA04”,85}, {”GAO 1 ”,91}, {”GA07”,72},{”GA08”,64},{”GA06”,87}, {”GA015”,85},{”GA013”,91},{”GA012”,64}, {”GA014”,91},{”GA011”,91},{”GA017”,64}, {”GAO 18 ”,64}, {”GAO 16”,72}}; STREC h[N]; int i,n; nfuns,h; printfnThe d lo