您的位置:首页 > 其它

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

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

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.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 = 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
= { {"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
, 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: