首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
admin
2009-02-19
82
问题
在文件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全国计算机三级
相关试题推荐
计算机病毒是影响计算机系统正常运行的主要因素之一,目前以“PC机+Windows操作系统”为攻击目标的计算机病毒有成千上万种。在下列有关计算机病毒的叙述中,错误的是( )。
以下叙述正确的是( )。
目前PC机上使用的手写笔是一种输入设备,它的功能是______。
按病毒的入侵途径可将病毒分为入侵型、操作系统型、( )4类。
用户要将一台计算机作为打印机服务器使用,需要安装______。Ⅰ.NetWare目录服务Ⅱ.Microsoft网络上的文件与打印机共享Ⅲ.NetWare网络上的文件与打印机共享
执行01H-0FFH运算后,CF和OF的状态分别为( )。
在IBM PC/XT微型计算机系统主板上的8237A控制器,可以提供给用户使用的DMA通道是( )
IEEE802.11是无线局域网采用的通信协议标准,其中IEEE802.11g是目前比较广泛采用的一种,它的数据传输速率最高可以达到______Mb/s。
通常情况下,一个外中断服务程序的第一条指令是STI,其目的是______。
嵌入式系统的存储器以半导体存储器为主。随着技术的不断发展,新型存储器不断出现,主要包括FRAM和MRAM,分别称为__________【59】存储器和__________【60】存储器。
随机试题
影响临界流化速度的主要因素有哪些?
有关子宫复旧错误的是:
下列哪项不属于间接固位体
机械性肠梗阻体征不包括:
下列不属于经济全球化表现的是()。
某女,56岁。诉说有人要加害于自己,寻求各方面的保护。自述自从丈夫去世后,有一个30多岁的男性骚扰自己(只听到他说话,见不到人),不断给自己下指令,要自己打扮入时,佩带首饰,为此自己已做了两条超短裙。以后感到这是要破坏自己的名誉,不再听他的指挥。现在“那人
案例一般资料:求助者,女性,28岁,中学教师。案例介绍:求助者由于与丈夫发生矛盾,烦躁、失眠三个多月。下面是心理咨询师与求助者之间的一段咨询对话。心理咨询师:您好!请问我能为您提供什么帮助呢?求助者:我最近
A、39B、40C、41D、42B此题答案为B。此题可从第一个三角形的中心数字43入手分析,它是一个质数,且大于三个角上的数字,此时可优先考虑加法,计算三个角上的数字之和,正好等于中心数字,在后面几个三角形中这种规律也是成立的,4+25+11=(4
Overthelastdecade,demandforthemostcommoncosmeticsurgeryprocedures,likebreastenlargementsandnosejobs,hasincrea
Newresearchshowsgirlswhoregularlyhavefamilymealsaremuchless【S1】______toadoptallkindsofextremeweightcontrol【S2】
最新回复
(
0
)