使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是找出成绩最低的学生记录,

admin2023-02-27  15

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是找出成绩最低的学生记录,通过形参将其返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
    注意:部分源程序在文件prog1.c中。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
    试题程序:
1 #include<Stdio.h>
2 #include<string.h>
3 #include<conio.h>
4 #include<stdlib.h>
5 #define N 10
6 typedef struct ss
7 {char num[10];
8  int s;
9 }STU;
10 fun(STU a[],STU*s)
11 {
12
13 }
14 void main()
15 {
16  FILE*wf;
17  STU a[N]={{"A01 ",81),{"A02",
89},{"A03",66},{"A04",87},{"A05",77},{"A06",90 },{"A07",79},{"A08",61},{"A09",80),{"A10",
71}},m;
18   int i;
19   system("CLS");
20  printf("*****The originaldata*****\n");
21   for(i=0;i<N;i++)
22  printf("No=%s Mark=%d\n",a.num,a.s);
23  fun(a,&m);
24  printf("****The Result****\n");
25  printf("The lowest:%S,%d\n",m.num,m.s);
26 /*********found*********/
27   wf=fopen("out.dat","W");
28  fprintf(wf,"%s,%d",m.num,m.s);
29   fclose(wf);
30 /*********found*********/

选项

答案 1 fun(STU a[],STU*s) 2 { 3 int i; 4 *s=a[0];/*假设第1个元素值最小*/ 5 for(i=0;i<N;i++)/*如果在循环的过程中再发现比第1个元素值更小的元素则赋给*s*/ 6 if(s->s>a[i].s) 7 *s=a[i]; 8 }

解析 题目要求找出结构体数组元素中的最小值。假设数组中第1个元素值最小,即* s=a[0];,如果在循环的过程中发现比第1个元素值更小的,就将指针s指向该元素,直到找到值最小的元素。另外,请考生注意,本题还涉及结构体中的指向运算符。
转载请注明原文地址:https://kaotiyun.com/show/3D0D777K
0

最新回复(0)