在文件in75.dat中有200组数据,每组有3个数,每个数均为3位数。函数readDat()是读取这200组数存放到
在文件in75.dat中有200组数据,每组有3个数,每个数均为3位数。函数readDat()是读取这200组数存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数按照每组数据的第一个数加第三个数之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组比中。最后调用函数writeDat()把结果bb输出到文件out75.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 ()
{
}
void main ( )
{
int count;
readDat();
count=jsSort();
writeDat(count);
}
readDat()
{
FILE *in;
int i;
in=fopen("in75.dat","r");
for(i=0;i<200;i++)
fscanf(in, "%d %d %d", &aa[i].x1,&aa[i].x2,&aa[i].x3);
fclose(in);
}
writeDat(int count)
{
FILE *out;
int i;
clrscr();
ut=fopen("out75.dat","w");
for(i=0;i<count ;i++)
{
print f ( "%d, %d, %d 第一个数+第三个数
=%d\n", bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x1+bb[i].x3);
fprintf(out,, %d,% d,% d \n" ,bb[i].x1,bb[i].x2,bb[i].x3);
}
fclose(out);
}
int jsSort() { int i,j,count=0; Data val; for(i=0;i200;i++) if (aa[i]. x1>aa[i]. x2+aa [i]. x3) /*如果每组数据中的第一个数大于第二 三个数之和*/ { bb [count]. x1=aa [i]. x1; /*把满足条件的数据存入结构数组bb中*/ bb [count]. x2=aa [i]. x2; bb [count]. x3 =aa [i].x3; count++; /*统计满足条件的数据的组数* / } for (i= 0; icount-1; i++ ) /*对bb中的数按照每组数据的第一个数加第三个 数之和的大小进行升序排列*/ for (j =i+1; jcount; j ++) if (bb[i]. x1+bb[i]. x3>bb[j]. x1+bb [j]. x3) { val=bb [i]; bb[i]=bb[j]; bb [j] =val; } return count; /*满足条件的数据的组数*/ } 解析:本题考查的知识点如下:
(1)结构体及结构数组。
(2)数据的排序。
(3)函数的返回值。
本题中,定义了结构类型和结构数组,这就要涉及到结构体和结构数组的访问。相同类型的结构体变量之间可以直接赋值,也可以依次对结构体中的每个变量进行赋值或访问。排序使用“选择排序法”。函数的值通过return语句返回,格式为;return表达式或return(表达式)或return,当函数没有返回值时用第3种格式。在本题中,要用第1种或第2种格式。
1.求f(x)=x²-2x-3在下列区间上的值域①R②[-3,0]③[2,3]④[0,3]2.已知 其他 2020-05-02 …
静电场的一个题球形电极浮在相对电容率为εr=3.0的油槽中,球的一半浸没在油中,另一半在空气中.已 物理 2020-05-16 …
下列四组属于移项的是 A.有0.5x=3得x=6 B.有2x-3=0得2x-3+3=3 C.0.3 数学 2020-06-27 …
f(x),g(x)在R上是奇偶函数,在x0,且有g(-3)=0,求f(x)g(x)>0的解集f(x 数学 2020-07-07 …
如图所示,在磁感应强度B=1.0T的匀强磁场中,金属杆PQ在外力F作用下在粗糙U型导轨上以速度v= 其他 2020-07-08 …
已知空间三个点P(-2,0,2),Q(-1,1,2)和R(-3,0,4)已知空间三个点P(-2,0 数学 2020-07-20 …
如图所示,MN、PQ为光滑平行的水平金属导轨,电阻R=3.0Ω,置于竖直向下的有界匀强磁场中,OO 物理 2020-07-21 …
如图所示,位于竖直平面内的矩形金属线圈,边长L1=0.40m、L2=0.25m,其匝数n=100匝 物理 2020-07-21 …
如图所示,在真空中半径r=3.0×10-2m的圆形区域内,有磁感应强度B=0.2T、方向垂直于纸面 物理 2020-07-30 …
如图所示,水平面上有两根相距0.5m的足够长的平行金属导轨MN和PQ,它们的电阻可忽略不计,在M和P 物理 2020-12-31 …