首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
admin
2009-02-24
22
问题
在文件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>
typede f 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/RRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
为保证对故障恢复的支持,登记日志记录时必须先把日志记录写到外存的日志文件中,再把相应的数据库修改写到外存的数据库中。这称作【】原则。
Oracle针对Internet/Intranet的产品是
从WWW的资源和行为中抽取感兴趣的、有用的模式或隐含的信息的过程,称为【】挖掘。
设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),问新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列哪一个排序算法一趟扫描的结果?
文件的存取方式是由文件的性质和用户使用文件的情况而定的,一般可以采用顺序存取和随机存取两种形式。顺序存取是按照文件的______地址顺序存取的。
严格两阶段封锁协议要求对更新数据的封锁必须保持到事务______。
消息的序号和时间性的认证主要是阻止消息的()。
下面页面淘汰算法中,会产生Belady(异常)现象的是______。
在SQLServer2008中,有两种身份验证模式,一种是混合身份验证模式,另一种是【9】身份验证模式。
假定我们要建立一个学术论文数据库,存储如下信息:*学术期刊有期刊编号、期刊名、发行单位;*作者有作者编号、作者姓名、电子邮件;*论文有论文编号、论文标题、摘要、正文;*每篇论文只被一个期刊录用,每个期刊可以录用多篇论文;*每篇
随机试题
关于水痘的叙述不正确的是()
A.补气B.养阴C.两者均可D.两者均不可西洋参功能()
以下哪个不正确
急性肾衰无尿或少尿期早期,发生水中毒的常见原因是
基础工程划分4个施工过程(挖基槽、做垫层、浇混凝土、回填土)。分3个施工段组织等节奏流水施工,流水节拍为5天。浇混凝土2天后才能进行回填土。该工程的流水施工工期为()天。
某商店商品销售额增长5%,平均销售价格增长2%,则商品销售量()。
白雾村曾是西汉时期西南夷道上的重要驿站,又是明清时期的万里京运第一站,但眼前的白雾村显得有些____________。狭长的白雾街还保留着当年的格局,两侧矗立着20多座明清风格古建筑,但歪歪扭扭的门梁、________的屋顶、面临倾覆的古会馆,令人对这个曾
Itisallverywelltoblametrafficjams,thecostofpetrolandthequickpaceofmodernlife,butmannersontheroadsarebe
Thedot-comcollapsemayhavebeenadisasterforWallStreet,buthereinSiliconValley,itwasablessing.Itwasthewelcome
Boilerroomsareoftendirtyandsteamy,butthisoneispristine(干净的)andcool.FoxPointisaspankingnew47-unit【C1】_______
最新回复
(
0
)