首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 注意:部分源程序存在文件PROG1.C文件中。 请勿改动主函数mai
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 注意:部分源程序存在文件PROG1.C文件中。 请勿改动主函数mai
admin
2017-07-27
61
问题
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
注意:部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<string.h>
3 #define N 10
4 typedef struct ss
5 { char num[10]; int s;) STU;
6 void fun(STU a[],STU *s)
7 {
8 }
9 main()
10 {STU a[N]={{’’A01’’,81},{’’A02”,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}},m;
11 int i;void NONO();
12 printf(’’***** The original data *****\n’’);
13 for(i=0;i<N;i++)printf(’’No=%s Mark=%d\n’’,a
.num,a
.s);
14 fun(a,&m);
15 printf(’’***** THE RESULT *****\n’’);
16 printf(’’The lowest:%s,%d\n’’,m.num,m.s);
17 NONO();
18 }
19 void NONO()
20 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
21 FILE *rf,*wf;
22 STU a[N],m;
23 int i;
24 rf=fopen(’’in.dat’’,’’r’’);
25 wf=fopen(’’out.dat’’,’’w’’);
26 for(i=0;i<10;i++)fscanf(rf,’’%s %d’’,a
.mum,&a
.s);
27 fun(a,&m);
28 fprintf(wf,’’The lowest:%s,%d\n’’,m.num,m.s);
29 fclose(rf);
30 fclose(wf);}
选项
答案
1 int i, min=a[0].s, j=0; 2 for(i=1; i<N; i++) 3 if(min>a[i].s){ /*如果最低分 min仍大于当前分*/ 4 j=i; /*记住位置+/ 5 min=a[i].s; /*把当前分赋值给min*/ 6 } 7 *s=a[j];
解析
(1)首先指定第一个成绩为最低分数。
(2)再使用一个for循环把所有的成绩进行比较,找出最低的分数来。
转载请注明原文地址:https://www.kaotiyun.com/show/gKDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
已知下列函数定义:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}则调用此函数的正确写法是(假设变量a的说明为inta[10])(
下列叙述中错误的是()。
本程序用冒泡法对数组a[]的元素从大到小排序,请在程序空白处填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)
在下列选项中,没有构成死循环的是()。
下面函数的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}
数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-A);}
以下程序的输出结果是()。main(){charst[20]="hello\0\t\\\";printf("%d%d\n",strlen(st),sizeof(st));}
是构成C语言程序的基本单位。
C语言的基本单位是()。
随机试题
化三重积分f(x,y,z)dv为三次积分,其中积分区域Ω分别为由椭圆抛物面z=x2+2y2及抛物柱面z=2-x2所围成的闭区域;
图中标志的含义是表示车辆向右行驶。
与英国法相比,美国法的特点包括()
按崩解时限检查法检查,下列片剂应在多少时间内崩解A.30分钟B.15分钟C.60分钟D.5分钟E.20分钟普通片剂
属阿片受体激动药的是
在土地出让合同约定的动工开发期限满2年尚未动工的土地使用权,可以处以()。
下列()促销手段只在短期内有效,如果时间长了或过于频繁,容易引起消费者的怀疑和不信任感。
金融是现代生活中不可缺少的经济内容之一,深入千家万户,人们常常看到多种多样的金融现象,也有多种多样的理解说法。阅读以下金融现象,选择正确答案。在实际生活中假现金的现象时常发生,人们对假现金深恶痛绝又防不胜防。为什么现金有假的而银行存款没有假的呢?(
TrafficisaperennialprobleminHongKong.Overtheyearsmanysuggestionshavebeen【C1】______toeasetransportdifficulties.
HealthInsurance(保险)MostAmericansareresponsiblefortheirownmedicalcosts.Thesecanbeextremelyhighifapersonge
最新回复
(
0
)