下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来

题目

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <conio.h>

include <string.h>

include <stdio.h>

include <alloc.h>

define N 10

typedef struct SS

{

char num[10];

int s;

}STU;

STU *fun(STU a[],int m)

{

STU b[N],*t;

int i, j,k;

/*************found*************/

*t=calloc(m,sizeof(STU));

for(i=0;i<N;i++)

b[i]=a[i];

for(k=0;k<m;k++)

{

/*************found*************/

for(i=j=0;i<N;j++)

if(b[i].s<b[j],s)

j=i;

/*************found*************/

t[k].s=b[j].s;

b[j].s=100;

}

return t;

}

outresult(STU a[],FILE *pf)

{

int i;

for(i=0;i<N;i++)

fprintf(pf,"NO=%S Mark=%d\n",

a[i].num,a[i].S);

fprintf(pf,"\n\n");

}

main()

{

STU a[N]={{“A01”,77},{“A02”,85},

{“A03”,96},{“A04”,65},{“A05”,75},

{“A06”,96},{“A07”,76},{“A08”,63},

{“A09”,69},{“A10”,78}};

STU *porder;

int i,m;

clrscr();

printf(“*****THE RESULT*****\n”);

outresult(a,stdout);

printf(“\nGive the number of the students who have lower score:”);

scanf(“%d”,&m);

while(m>10)

{

printf(“\nGive the number of the students who have lower score:”);

scanf(“%d”,&m);

}

porder=fun(a,m);

printf(“*****THE RESULT*****\n”);

printf(“The low:\n”);

for(i=0;i<m;i++)

printf(“%s %d\n”,porder[i].num,

porder[i].s);

free(porder);

}

更多“下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来 ”相关问题