学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proe(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。 例如,输入的分数是70和79,则应当把分数低于7

admin2013-03-25  39

问题 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proe(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。
    例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。
    注意:部分源程序给出如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的花括号中填入所编写的若干语句。
    试题程序:
#include
#define M 16
typedef struct
{
  char num[10];
  int s;
}
STREC:
int proc(STREC * a,STREC * b,int 1,int h)
{
}
void main()
{
  STREC stu[M]={{"GA005",55},{"GA003",96},
  {"IGA002",80},{"GA004",68},
  {"GA001”,88},{"GA007",74},
  {"GA008",85},{"GA006",89},
  {"GA015",90},{"GA013",53},
  {"GA012",66},{"GA014",82},
  {"GA011",73},{"GA017",69},
  {"GA018",64},{"GA016",86}};
  STREC h[M];
  int i,n,low,heigh,t;
  printf("Enter 2 integer number low& heigh:");
  scanf("%d%d",&low,&heigh);
  if(heigh  {
    t=heigh;
    heigh=low;
    low=t;
  }
  n=proc(stu,h,low,heigh);
  printf("The student’s data out%d--%d:\n",low,heigh);
  for(i=0;i  printf("%s%4d\n",h.num,h.s);
  //输出指定分数范围内的学生记录
  printf("\n");
}

选项

答案 int proc(STREC * a,STREC * b,int 1,int h) { int i,j=0; for(i=0;i=0&&a[i].s<1)||(a[i].s>h&&a[i].s<=100))//通过if语句,来判断指定范围之外的数 b[j++]=a[i]; //放到b数组中 return j; //最后把其个数返回到主函数中 }

解析 题目要求把指定范围之外的数放到b中,将每一个学生的成绩与指定的成绩相比较,将符合条件的学生成绩放在数组b中,并将符合要求的学生个数返回给主函数。
转载请注明原文地址:https://jikaoti.com/ti/GKn0FFFM
0

最新回复(0)