首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
admin
2009-02-19
57
问题
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对结构数组bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到文件OUT30.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include 〈stdio.h>
#include 〈string.h>
#include 〈conio.h>
typedef struct
{
int x1, x2, x3;
} Data;
Data aa[200], bb[200];
int jsSort()
{
}
main ( )
{
int count;
readDat();
count = jsSort (); /* 返回满足条件的个数 */
writeDat(count);
}
readDat()
{
FILE *in;
int i;
in = fopen("IN30.DAT", "r");
for(i=0; i〈200; i++)
fscanf(in, "%d %d %d", &aa
.x1, &aa
.x2, &aa
.x3);
fclose(in);
}
writeDat(int count)
{
FILE *out;
int i;
out= fopen("OUT30.DAT", "w");
clrscr();
for(i=0; i〈count; i++)
{
printf("%d, %d, %d 第二个数+第三个数=%d\n", bb
.x1, bb
.x2,
bb
.x3, bb
.x2+bb
, x3);
fprintf(out, "%d, %5d, %d\n", bb
.x1, bb
.x2, bb
.x3);
}
fclose(out);
}
选项
答案
int jsSort() { int i, cnt=0, j; Data ch; for(i=0; i〈200; i++) if(aa[i].x2>aa[i].x1+aa[i].x3) /*如果第二个数大于第一个数加第三个数之和*/ { bb[cnt]=aa[i]; /*则把该组数据存入结构数组bb中*/ cnt++; /*统计满足条件的数据的组数*/ } for(i=0; i〈cnt-1; i++) /*对结构数组bb中的数据按照每组数据的第二个数*/ for(j=i+1; j〈cnt; j++) /*加第三个数之和的大小进行降序排列*/ if(bb[i].x2+bb[i].x3〈bb[j].x2+bb[j].x3) { ch=bb[i]; bb[i]=bb[j]; bb[j]=ch; } return cnt; /*返回满足条件的个数*/ }
解析
本题考查对结构体数组中的元素的各个域的操作。首先利用一个for循环来依次取得结构体数组中的各个元素,之后按照题目要求对当前的元素的各个域进行条件判断,由语句“if(aa
.x2>aa
.x1+aa
.x3)”来实现。如果该条件成立,则把被判断元素存放到数组bb中去,当符合条件的所有元素被找完后,按照“每组数据中的第二个数加第三个数之和的大小”进行从大到小的排序。解答本题的关键是要弄清被处理对象是结构体变量中的某个域,而不是结构体变量本身。
转载请注明原文地址:https://kaotiyun.com/show/CYcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
80386在实地址方式下的有效存储空间是( )。
在ADD指令中,两个操作数的物理位置可以安排在( )
下列程序的功能是用直接填入法将60H号类型中断服务程序INT 60H的入口地址填入中断向量表中,请填空。MOV AX, 0MOV ES, AXMOV BX, 60H*4MOV AX, OFFSET INT 60HMOV
Windows98虽然只支持单处理器结构的PC机,但它通过提供虚拟机、进程和线程等机制能很好地支持多道程序在PC机中运行。下面是关于Windows98处理器管理功能的一些叙述:Ⅰ.在保护模式下,虚拟机的个数随着运行的Windows应用程序个数的增加而
对总线仲裁问题的解决是以______(又称优先权)的概念为基础的,通常有三种总线分配的______技术——串联、并联和循环。
在软件测试中,检查各模块间接口关系、各模块组合在一起时的功能是否满足总的功能要求的测试是( )
大多数嵌入式系统都必须处理汉字信息。下面关于汉字在系统中表示方法的叙述中,错误的是()。
Linux内核由若干个子系统组成,一般来说下面哪一个不是Linux内核的子系统()。
在数据库的三级模式体系结构中,概念模式与内模式之间的映像(概念模式/内模式),实现了数据的()独立性。
m阶B树的根节点若不是叶节点,那么它至多有m棵子树,至少有_____棵子树。
随机试题
试述异议股东的股权收购请求权。
紧密连接位于()
急性胰腺炎常见的病因有________、________、________、________和________等。
急性肾炎的病机为下列哪种病理产物与风热毒互结导致水液代谢障碍而发病()
可作片剂的水溶性润滑剂的是
在项目风险管理过程中,完善项目各参与方的合同,加强合同管理,可降低项目的()风险。
证券间的联动关系由相关系数来衡量,其取值总是介于-1和1之间,如果值为正,表明()
案例:某同学对一道练习题的解答如下。某薄壁容器重4N,其容积为2.5dm3,高为30cm,底面积为200cm2,该容器装满水,放在面积为1m2的水平桌面中央,求(1)水对容器底部的压力。(2)容器对桌面的压强。
下列各句中,标点符号使用正确的是()
社会主义实现由空想到科学发展的标志是()
最新回复
(
0
)