使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已放入主函数的结构体数组s中。请编写函数fun(),其功能是把指定分数范围内的学生记录存放

admin2023-02-27  22

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已放入主函数的结构体数组s中。请编写函数fun(),其功能是把指定分数范围内的学生记录存放在b所指的数组中,分数范围内的学生人数由函数值返回。
    如输入的分数是60、69,则应当把分数在60~69的学生记录输出,包含60分和69分的学生记录。主函数中把60放在low中,把69放在high中。
    注意:部分源程序给出如下。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号申填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 #define N 16
3 typedef struct
4 {
5  char num[10];
6  int s;
7 }STREC;
8 int fun(STREC*a,STREC*b,int 1,int h)
9 {
10
11 }
12 void main()
13 {
14  STREC s[N]=f{"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}};
15  STREC h[N];
16  int i,n,low,high,t;
17  printf("Enter 2 integer number low&high:");
18  scanf("%d%d",&low,&high);
19  if(high<low)
20  {t=high;high=low;low=t;)
21  n=fun(s,h,low,high);
22  printf ("The student’s data between%d--%d:\n",low, high);
23    for(i=0;i<n;i++)
24    printf("%s%4d\n",h.hum,h.s);
25  printf("\n");
26 }

选项

答案 1 int fun(STREC*a,STREC*b, 2 int 1,int h) 2 { 3 int i,j=0; 4 for(i=0;i=1&&a[i].s<=h)/*将分数高于1,低于h的学生记录存入结构体数组b中*/ 6 b[j++]=a[i]; 7 return j;/*返回分数范围内的学生人数*/ 8 }

解析 本题使用循环判断结构实现题目要求。循环语句用于遍历结构体数组;条件语句用于判断当前元素是否符合条件,若符合条件则将其存入结构体数组b中。变量j为数组b元素下标,最后变量j为学生人数,作为函数值返回。
转载请注明原文地址:https://jikaoti.com/ti/7ioiFFFM
0

最新回复(0)