A类(3):
- 找出低于均分的数据:
typedef struct
{ char num[10];
double s;
} STREC;
double fun( STREC *a, STREC *b, int *n )
{
int i,j=0;
double av=0.0;
for(i=0;i<N;i++)
av+=a[i].s/N;
for(i=0;i<N;i++)
if(av>a[j].s)
b[j++]=a[i];
*n=j;
return av;
}
- 统计最高分的数据:
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a, STREC *b )
{
int i,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)
max=a[i].s;
for(i=0;i<N;i++)
if(max==a[i].s)
b[j++]=a[i];
return j;
}
- 将范围内的数据放入新数组中
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];
return j;
}
B类(3):
- 找出最低学生成绩的数据:
typedef struct ss
{
char num[10];
int s;
} STU;
void fun(STU a[], STU *s)
{
int i;
*s=a[0];
for(i=0;i<N;i++)
if(s->s>a[i].s)
*s=a[i];
}
- 求出学生成绩的平均分:
typedef struct
{ char num[10];
double s[N];
double ave;
} STREC;
void fun(STREC *a)
{
int i;
a->ave =0.0;
for(i=0;i<N;i++)
a->ave+=a->s[i]/N;
}
- 求数据平均分:
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun( STREC *h )
{
double ave=0.0;
STREC *p=h->next;
while(p!=NULL)
{
ave+=p->s/N;
p=p->next;
}
return ave;
}
C类(2):
- 寻找学生数据:
typedef struct
{ char num[10];
int s;
} STREC;
STREC fun( STREC *a, char *b )
{
int i;
STREC str={"\0",-1};
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)==0)
str=a[i];
return str;
}
- 找出最高分(链表):
double fun( STREC *h )
{
int i;
double max=h->s;
while(h!=NULL)
{
if(max<h->s)
max=h->s;
h=h->next;
}
return max;
}