首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件IN3.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中
在文件IN3.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中
admin
2009-02-24
55
问题
在文件IN3.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果比输出到文件OUT3.DAT中。
例如:处理前 9012 5099 6012 7025 8088
处理后 5099 8088 7025 6012 9012
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include <stdio.h>
%include <string.h>
%include <conio.h>
int aa[200], bb[10];
void jsSort()
{
main ( )
{
readDat ();
jsSort ();
writeDat ();
}
readDat ( )
{
FILE *in;
int i;
in = fopen("IN3.DAT", "r");
for(i = 0; i < 200; i++) fscanf(in, "%d,", &aa
);
fclose (in);
writeDat ()
{
FILE *out;
int i;
out = fopen("OUT3.DAT", "w");
clrscr ();
for (i = 0; i < 10; i++)
{
printf("i=%d,%d\n", i+l, bb
);
fprintf(out, "%d\n", bb
);
}
fclose (out);
}
选项
答案
void jsSert () { int. i, j,data; for (i=O; i<199; i++) /*对数组中的4位数按后3位进行从大到小的排序*/ for j=i+1; j<200; j++) { if (aa [i] %1O00<aa [j] %1000) /*比较每个数的后3位*/ {data=aa[i];aa[i]=aa[j]; aa [j]=data; } else if (aa [i] %1O00==aa [j] %1000) /*若后3位数相等*/ if (aa [ii>aa [j] ) /*则要按原4位数的值进行从小到大的排序*/ {data=aa[i];aa[i]=aa[j];aa[j]=data;} } for (i=O; i<1O; i++) /*将排序后的前10个数存入数组b中*/ bb[i] =aa[i]; }
解析
本题实质上考的是对数组元素进行排序的问题。最容易理解的方法是选择法。选择法的基本思想是:依次用当前取得的元素和它后面的其他元素进行比较,比如要从大到小进行排序,则只要发现后面的元素中有比当前元素大的,就把刚发现的较大的元素与当前元素交换,这样做的目的是当与其后的所有元素都比较完后,可以保证当前位置的当前元素存放着最大数。按照同样的方法去取得次大数。由于本题中题目要求要对数组中的4位数的后3位进行排序,因此,要首先取得各个数的后3位并做比较,“aa
%1000”就可以得到每个数的后3位。根据题意,对这些数按后3位进行从大到小的排序。若后3位数相等,则要按原4位数的值进行从小到大的排序。
转载请注明原文地址:https://www.kaotiyun.com/show/TRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
A、 B、 C、 D、 BPowerDesigner中ProcessAnalyst用于数据分析和数据发现,使用户能够描述复杂的处理模型以反映他们的数据库模型,产生数据字典,绘制数据流程图等。
在关系数据库中,表(table)是三级模式结构中的
下列______不是TCP/IP参考模型中的应用层协议。
若用如下的SQL语句建立一个Worker表:CREATETABLEworker(NOC(4)NOTNULL,NAMEC(8)NOTNULL,SEXC(2),AGEN(2))可以插入到worker表中的是______。
有程序编制如下。数组中的每个元素为一个字。假设页面大小为每页128个字,数组中的每一行元素存放在一页中。系统为该程序提供一块内存,开始时内存为空。VARA:ARRAY[1••256,1••128]OFinteger;FORj:=1TO128
下面列出的数据模型中,哪一种是数据库系统中最早出现的数据模型
在存储管理中,为实现地址映射,硬件应提供两个寄存器,一个是基址寄存器,另一个是【】。
航空订票系统、交通管制系统等的特点是数据量大,但计算相对简单,这一类应用属于下列()应用领域。
在数据文件in.dat中存放有200组数据,每组有3个数,每个数均是三位数。函数readDat()实现读取这200组数据并存放到结构体数组aa中。请编写函数jsSort(),其功能是:要求在200组数据中找出每组数据中的第一个数大于第二个数与第三个数之和.
在UML模型中,用于表达一系列的对象、对象之间的联系以及对象间发送和接收消息的图是【15】。
随机试题
强夯施工应符合()。
下列关于省、自治区城乡规划主管部门的职责表述正确的是()。
材料:某教师为《中国早期人类的代表——北京人》的教学,设计了如下的课后作业:参观历史博物馆,查阅图书资料并结合课文内容,自拟题目,比较一下古猿、北京人与现代的区别,书面作答。问题:指出该教师设计这一课后作业的意图。
我党具有旺盛创造力的关键是()。
遇有以下哪些情形,人民警察经警告无效的,可以使用武器()。
2001年全国人大常委会作出解释:《刑法》第四百一十条规定的“非法批准征用、占用土地”,是指非法批准征用、占用耕地、林地等农用地以及其他土地。对该法律解释,下列说法正确的是
在数据库技术中,数据模型分为概念数据模型和结构数据模型,常用的实体-联系模型(E-R模型)属于______数据模型。
Lookatthestatementsbelowandatthefiveextractsfromanarticleabouttherelationshipbetweenstrategicalliancesandorg
Americansdependontheircarsmorethananyotherpeople.Thefamilycarhasbeenacommonthingsincetheearly20thcenturya
Direction:Forthispart,youareallowed30minutestowriteashortessayentitledThePhenomenonofEmptyNest.Youshouldwri
最新回复
(
0
)