首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中
admin
2009-02-15
113
问题
学生的记录由学号和成绩组成,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://jikaoti.com/ti/6xkiFFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
根据我国宪法和有关法律的规定,下列选项中有关法规“批准”生效的情形哪一个是错误的?()
中国的英文名称“CHINA”的小写就是“瓷器”的意思,“CHINA”的英文发音源自景德镇的历史名称“昌南”,并以此突出景德镇瓷器在世界上的影响和地位。以下不属于景德镇四大传统名瓷的是()。
能够根据样本结果推断总体数量特征的调查方式是()。
下列说法错误的是()。
张某在路上发现有小偷正在对行人李某行窃,便立刻上前阻止.结果被该小偷用刀刺伤。张某共花费医疗费用5万元。针对该情况,下列表述中正确的是()。
扩张性货币政策的主要功能是()。
根据我国宪法规定,下列选项中哪一种情况不是公民获得物质帮助权的条件?()
符合下列哪一情形而在五年以内再犯应当判处有期徒刑以上刑罚之罪的,不构成累犯?()
政府为了保护农业生产者,对部分农业产品规定了保护价格。为了采取这种价格政策,应采取的相应措施是()。
10个非零不同自然数的和是1001,则它们的最大公约数的最大值是多少?
随机试题
同层动态增强扫描主要研究病灶的增强特征,鉴别其性质,最常用于
甲市某公司与乙市某公司在丙市签订了一份购销合同,约定合同于丁市履行,合同中的仲裁条款约定:若因本合同发生争议,提交设立于丙市的丙仲裁委员会进行仲裁。现两公司因合同发生争议,甲市某公司欲申请仲裁,得知丙市并没有设立仲裁委员会,但甲、乙、丁市均设有仲裁委员会。
计算机系统内的系统总线是()。
在波的传播方向上,有相距为3m的两质元,两者的相位差为,若波的周期为4s,则此波的波长和波速分别为()。[2011年真题]
证券的开盘价格通过()方式产生。
根据企业破产法律制度的规定,下列各项中,应当召开债权人会议的情形有()。
在Word2003中,“剪切”命令用于删除选定的内容,并将选定删除的内容放到()。
168,141,112,73,()
下列每项加点字意思相同的一项是()。
设栈S和队列O的初始状态为空,元素a、b、c、d、e和f依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该是()。
最新回复
(
0
)