在文件in33.dat中有200个正整数,且每个正整数均在100至9999之间。函数readDat()的功能是读取这 20
在文件in33.dat中有200个正整数,且每个正整数均在100至9999之间。函数readDat()的功能是读取这 200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存入数组bb中,如果数组比中出现后3位相等的数,则对这些数按原始4位数据进行降序排列。最后调用函数writeDat()把结果比输出到文件out33.dat中。
例如:处理前6012 5099 9012 7025 8088
处理后9012 6012 7025 8088 5099
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat)和写函数writeDat()的内容。
试题程序:
include
9include
include
int aa[200],bb[10];
void readDat();
void writeDat();
void jsSort()
{
}
void main()
{
readDat();
jsSort();
writeDat();
}
void readDat ()
{
FILE *in;
int i;
in=fopen (" in33. dat", "r" );
for(i=0;i<200;i++) fscanf (in,"%d ",&aa[i]);
fclose (in);
}
void writeDat()
{
FILE *out;
int i;
clrscr ();
out=fopen ( "out33. dat", "w" );
for (i=0;i<10; i++)
{
printf ("i=%d, %d\n", i+l,bb [i] );
fprintf (out, "%d\n", bb [i] );
}
fclose (out);
}
void jsSort() { int i, j, data; for (i=O; i199; i++) for (j=i+l; j200; j++) { if (aa [ii %1000>aa [j ] %1000) /*按照每个数的后3位的大小进行升序排例*/ { data=aa [i]; aa[ii=aa[j]; aa [j ] =data; } elseif(aa[i]%lOOO==aa[j]%1000) /*如果后3位数值相等,则对这些数值 按原始4位数据进行降序*/ if (aa Ii] aa [j ] ) { data=aa Iii; aa[ii=aa[j]; aa [ j ] =data; } } for (i=O; i<10; i++) /*将排好序的前十个数存入数组bb中*/ bb[i]=aa[i]; 解析:本题考查的知识点如下:
(1)循环结构的嵌套。
(2)选择结构的嵌套。
(3)特殊运算符“%”的使用。
(4)数据的升降序排列。
在该题中,首先要解决的问题是如何把题中4位数转换成符合要求的3位数。这里要用到一个比较特殊的运算符%,它的功能是取余。将4位数除以1000取余则得到要求的3位数。根据题意,若后3位相等,则按照原数据进行降序排序,所以在这里要加一个选择结构进行判断。对数据进行排序,可以使用最简单的“选择排序法”。即第一次从第一个数据开始和所有后面的数据进行比较,与比它大(小)的数据交换位置,将数据中最大(小)的数交换到最前面。第二次从第二个数据开始与后面的数据进行比较,将此次比较中最 (小)的数据交换至第二个位置,直至最后一个数据。
该图为某城市主要功能分区示意图且功能区分布合理。读图,完成8-9题。小题1:图示城市功能区中,最可 语文 2020-05-15 …
该图为某城市主要功能分区示意图且功能区分布合理。读图,完成下题。1.图示城市功能区中,最可能为住宅 其他 2020-05-15 …
功率因数是()。A.有功与视在功率的比值;B.无功与视在功率的比值;C.无功与有功的比值;D.有功与 职业技能鉴定 2020-05-31 …
功率因数COSφ是指:() A.有功功率与视在功率之比A.无功功率与视在功率之比B.有功功率与无功功 职业技能鉴定 2020-06-07 …
关于功和功率的说法正确的是()A.做功快的机器,它的功率一定大B.做功多的机器,它的功率一定大C. 物理 2020-06-16 …
a,b是异面直线,()A,若P为不在a,b上的一点,则过点p有且只有一个平面与a,b平行B,过直线 其他 2020-07-22 …
电源电压为15V,已知电阻R=3O欧,且R在电路中1s产生的热量为27J,灯L的额定功率为32W. 物理 2020-07-22 …
大学数学,证明两个推论若limXn=a>0,则存在整数N,当n>N时,有Xn>0,若limXn=a 数学 2020-07-30 …
已知直线a和平面α,则能推出a∥α的是()A.存在一条直线b,a∥b,且b∥αB.存在一条直线b,a 其他 2020-11-02 …
英语翻译电动机保证在70%额定电压下平稳启动,且能在55%额定电压下自启动.电动机满载运行应能承受电 其他 2020-11-23 …