首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中
admin
2009-02-15
151
问题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define N 16
typedef struct
{ char mum[10);
int s;
}STREC;
int fun (STREC a[ ])
{
}
main ()
{
STREC s[N]={{“GA005”,88},{“GA003”,64},
{“CA002”,77},{“GA004”,89},{“GA001”,54},
{“GA007”,72},{“GA008”,72},{“GA006”,65},
{“GA015”,83},{“GA013”,95},{“GA012”,55},
{“GA014”,68},{“GA01l”,78},{“GA017”,53},
{“GA018”,92},{“GA016”,82}};
int i;
FILE *out;
fun(s);
printf(“The data after sorted :\n”);
for(i=0;i<N;i++)
{
if((i)%4==0)
/*每行输出4个学生记录*/
printf(“\n”);
printf(“%s %4d ”,s
.num,s
.s);
}
printf(“\n”);
out=fopen(“out21.dat”,“w”);
for(i=0;i<N;i++)
{
if((i)%4==0&&i)
fprintf(out,“\n”);
fPrintf(out,“%4d”,s
.s);
}
fprintf(out,“\n”);
fClose(out);
}
选项
答案
int fun(STREC a[]) { int i,j; STREC t; for(i=l;i<N;i++) /*用冒泡法进行排序,进行N-1次比较*/ for(j=0;j<N-1;j++) /*在每—次比较中要进行N-1次两两比较*/ if(a[j].s>a[j+1].s) /*按分数的高低排列学生的记录,低分在前*/ { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }
解析
冒泡法算法思路:如果有N个数,则要进行N-1次比较,在每—次比较中要进行N-1次两两比较(这种算法较好理解但不是最精的)。所谓两两比较就是从头到尾依次将相邻两个数进行比较并将其中大的数放在前或在后(若要求从小到大排序,则大的数要放在后。反之则对调),即两两比较后这两个数要形成题中所要求的顺序。由于总是从头到尾进行比较,所以第1次比较结束后,最大(或最小)数肯定在最后,第2次比较结束后,次最大(或次最小)数肯定在倒数的第2个数,依次类推,所以进行第一次比较时必须比较到最后一个数,而进行第2次比较时只要比较到倒数的第2个数即可,所以进行第 i次比较I时只需比较N-i次即可(这种算法较难理解,但它是最好的)。
转载请注明原文地址:https://kaotiyun.com/show/QTID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
关于缓刑,下列哪一选项是错误的?()
下列说法错误的是()。
2013年10月发布的《国家卫星导航产业中长期发展规划》显示,到2020年,我国卫星导航系统产值将超过()亿元,将建成由()余颗卫星及地面运行控制系统组成的全球卫星导航系统,具备为全球用户提供导航定位服务的能力。
下列规范性文件中不得设定行政许可的是()。
法院审理一起受贿案时,被告人甲称因侦查人员刑讯不得已承认犯罪事实,并讲述受到刑讯的具体时间。检察机关为证明侦查讯问程序合法,当庭播放了有关讯问的录音录像,并提交了书面说明。关于该录音录像的证据种类,下列哪一选项是正确的?()
消化系统是保证人体新陈代谢正常进行的一个重要系统,是由消化管和消化腺两大部分组成,下列器官或腺体不属于消化系统的是()。
10个非零不同自然数的和是1001,则它们的最大公约数的最大值是多少?
甲、乙两个仓库共存药45吨,现从甲仓库调出库存的60%,从乙仓库调出库存的40%支援非洲,结果两仓库药品库存相差3吨。甲、乙仓库原本库存的比例可能是多少?
随机试题
人们花钱购买名牌产品时,不是为了产品的质量,而往往是为了品牌的名声,希望通过品牌的名气提高自己的身份。某企业就是要靠其名牌产品“独一无二”的魅力来保持其销售额的不断增长。以上所述。最能支持以下哪项结论?
男性,21岁,因饱餐后活动,突感中腹部剧烈疼痛,阵发加重,伴呕吐,未排气、排便,查体:腹部隆起,压痛明显,肠鸣音亢进。最可能的诊断是
患者胁肋胀痛,走窜不定,甚则引及胸背肩臂,疼痛每因情志变化而增减,胸闷腹胀,嗳气频作,得嗳气而胀痛稍舒,纳少口苦,舌苔薄白,脉弦。治宜选用
关于真性红细胞增多症的叙述,下列正确的是( )
皮肤病发生迅速,骤起骤退,游走不定,泛发全身或多发于头部,皮肤干燥,脱屑,瘙痒,为何病因引起
女,30岁,低热、腹胀、腹痛1个月。查体:腹部弥漫压痛,揉面感,移动性浊音阳性,对诊断最有意义的检查是
医疗机构发现法定传染病疫情或者发现其他传染病爆发,流行时,其疫情报告应当遵循的原则是
下列关于业务实施过程相关规定的表述中,正确的有()。
第一次业主大会筹备组自成立之日和业主委员会自选举产生之日起()内将相关的材料报物业所在地、县人民政府房地产行政主管部门备案。
AnairlinertravellingfromLondontoNewYorkmaytakefromfivetofifteenhourstocrosstheAtlantic,whileaspacecapsule
最新回复
(
0
)