102.在学生结构体中寻找规定范围内的分数

来源:互联网 发布:ds18b20怎么接单片机 编辑:程序博客网 时间:2024/05/10 13:27

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,函数fun的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。


#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define N 16typedef struct{char num[10];int s;}STREC;int fun(STREC *a, STREC *b, int l, int h){int i, j = 0;for (i = 0;i < N;i++)if ((a[i].s >= l) && (a[i].s <= h)){b[j] = a[i];j++;}return j;}int main(){STREC a[N] = { {"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",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], tt;int i, j, n, low, high, t;printf("The Enter 2 integer number low&high:  ");scanf("%d%d",&low, &high);if (high < low){t = high;high = low;low = t;}n = fun(a, h, low, high);printf("The student data between %d--%d:\n", low, high);for (i = 0;i < n;i++)printf("%s  %4d\n", h[i].num, h[i].s);printf("\n\n");n = fun(a, h, 80, 98);for (i = 0;i < n - 1;i++)for (j = i + 1;j < n;j++)if (h[i].s>h[j].s){tt = h[i];h[i] = h[j];h[j] = tt;}for (i = 0;i < n;i++)printf("%4d\n", h[i].s);system("pause");return 0;}


0 0