计算机等级考试三级编程解析六
不及物动词数值排序
in . dat中的文件有200组数据,每组有3个数字,每个数字有3个数字。ReadDat()函数读取这200组数据,并将它们存储在结构数组aa中。请编译jsSort()函数。它的作用是寻找每组中第一个数大于第二个数和第三个数之和的条件,满足条件的数就是jsSort()函数的返回值,满足条件的数据存放在结构数组bb中。然后将bb中的数据按照每组数据的第一个数和第三个数之和(第一个数和第三个数之和不相等)进行升序排列,排序后的结果仍然再次存储在结构数组bb中。最后调用函数WriteDat()将结果bb输出到文件out.dat
已经给出了一些源程序。
请不要更改主函数()、读取数据函数ReadDat()和输出数据函数WriteDat()的内容。
# include
# include
# include
typedef struct{
int x1,x2,x3;
}数据;
数据aa[200],bb[200];
int jsSort()
{
}
void main()
{
int count;
read dat();
count = jsSort();/*返回满足条件的次数*/
write dat(count);
}
read dat(int count)
{
FILE * in;
int I;
in=fopen("in.dat "," r ");
for(I = 0;ifscanf(in," %d,%d,%d ",&aa[i].x1,&aa[i].x2,& aa[I]. x3);
f close(in);
}
write dat()
{
FILE * out;
int I;
clr SCR();
out=fopen("out.dat "," w ");
for(I = 0;Iprintf("%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,k = 0;
数据交换;/*定义一个结构变量作为exchange */
for(I = 0;I(aa[I]. x2+aa[I]. x3))
bb[k++]= aa[I];
/*首先,在bb数组*/
中存储与第一个数字匹配的大于第二个数字加上第三个数字之和的数字,用于(I = 0;ifor(j = I+1;jif((bb[I]. x1+bb[I]. x3)>(bb[j]. x1+bb[j]. x3))
{
swap = bb[I];
bb[I]= bb[j];
bb[j]= swap;/*在BB数组中排序(从小到大)*/
}
返回k;
}
0条评论