首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件in.dat中有200个数据。函数ReadDat()读取这200个数据存放到整型数组aa中,请编制函数jsSod(),其函数的功能是:要求在200个数据中找出满足以下条件的三元组(a,b,c),其中a、b、c是所给200个数据中的三个不同的数,且以a
在文件in.dat中有200个数据。函数ReadDat()读取这200个数据存放到整型数组aa中,请编制函数jsSod(),其函数的功能是:要求在200个数据中找出满足以下条件的三元组(a,b,c),其中a、b、c是所给200个数据中的三个不同的数,且以a
admin
2010-06-17
65
问题
在文件in.dat中有200个数据。函数ReadDat()读取这200个数据存放到整型数组aa中,请编制函数jsSod(),其函数的功能是:要求在200个数据中找出满足以下条件的三元组(a,b,c),其中a、b、c是所给200个数据中的三个不同的数,且以a、b、c为边长的三边能构成三角形。满足条件三元组的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中(要求bb
.x1<bb
.x2<bb
.x3),再对bb中的数据按照每组数据构成三角形的周长进行升序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include<stdio.h>
#include<string.h>
#include<conio.h>
typedef struct{
int x1,x2,x3;
}data;
int aa[200];
data bb[200];
int jsSort()
{
}
void main ()
{
int count;
readDat();
count=jsSort (); /*返回满足条件的个数*/
writeDat(count);
}
readDat(int count)
{
FILE *in;
int i;
in=fopen("in.dat","r");
for(i=0; i<200; i++)
fscanf(in,"%d",&aa
);
fclose(in);
}
WriteDat(int count)
{
FILE *out;
int i;
clrscr();
out=fopen("out.dat","w");
for(i=0; i<count; i++){
fprintf(out,"%d,%d,%d\n",bb
.x1,bb
.x2,bb
.x3);
}
fclose(out);
}
选项
答案
int jsSort() { int i,i,u,k;0; data swap;/*定义一个结构体变量,作为交换时的临时存放地*/ data tmp;/*定义一个结构体变量,作为新构造的三元组(不一定满足条件)的存放地*/ for(i=0;i<200;i++) for(j=i+1;j<200;j++) for(u=j+1;u<200;u++) { if (aa[i]<aa[j]) { tmp.x1=aa[i]; tmp.x3=aa[j]; } else { tmp.x1=aa[j]; tmp.x3=aa[i]; } if (aa[k]<tmp.x1) { /*aa[k]在三个数中最大*/ tmp,x2=tmp.x1; tmp.x1=aa[k]; } else if (aa[k]>tmp.x3) { /*aa[k]在三个数中最小*/ tmp.x2=tmp.x3; tmp.x3=tmp; } else trap, x2=aa [k]; /*aa [k]在三个数中居中*/ /*按照要求构造结构*/ if(tmp.x1 + tmp,x2 > tmp.x3) bb[k++]=tmp; /*将符合条件的数存入bb数组中*/ } for(i=0;i<k-1;i++) for(j=i+1;j<k;j++) if((bb[i].xl+bb[i].x2+bb[i].x3)>(bb[j].xl+bb[j].x2+bb[j].x3)){ swap-bb [ii; bb [i] =bb [j]; bb [j ] =swap; /*在BB数组中进行选择排序(从小到大) */ } return k; }
解析
类型:整数排序。
关键:条件判断和排序算法。最后排序采用选择排序。
转载请注明原文地址:https://kaotiyun.com/show/wIvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
存储器的带宽是指每秒可传输(读出/写入)的最大数据总量。存储器带宽与存储器总线的工作【59】有关,也与数据线的【60】和每个总线周期的传输次数有关。
I2C总线被启动后,多个主机在每发送一个数据位时都要对SDA信号线电平进行检测,只要检测的电平与自己发出的电平__________【63】就会继续占用总线。总线控制遵循的原则是谁先发送__________【64】电平谁就会掌握对总线的控制权。
在嵌入式系统(如数码相机)中,获取数字图像的过程大体分为四步,如下图所示,其中前3个步骤分别是()。
数字视频(及其伴音)在嵌入式系统中使用或在互联网上传输时,其文件格式有多种。下面几种文件格式中不属于数字视频文件格式的是()。
设R1中为一正整数,将其数值的一半存入R2的ARM指令正确的是()。
一幅1024×768的彩色图像,每个像素使用16位表示,采用压缩比为5倍的算法压缩图像数据之后,其数据量大约是()MB。
随机试题
以下符号中_________代表某一种I/O总线标准。
真心痛的临床表现包括
颅内压增高呕吐的特点为
学校建筑教室、阅览室的照明功率密度现行值为()w/m2。
加工贸易内销集中纳税适用于海关__________及以上企业。
下列各项中具有广泛的外部经济效益,因而具有“公共产品”的性质的有()。
结合AD—AS模型分析:(2015年中山大学801经济学)供给冲击对均衡产出和价格水平的影响。
给定一个关键字序列(24,19,32,43,38,6,13,22),进行快速排序,扫描一趟后的结果是_____________。
WhydoesOldFreddosomethingstupid?
Whatisthepurposeofthetalk?
最新回复
(
0
)