fclose(out);
参考答案:void jsSort()
{
int i, j,data;
for(i=0;i<AII;i++)
for(j=i+A;j<B00;j++)
{
if(aa[i]%A000>aa[j]%A000) /*按照每个数的后C位的大小进行升序排列*/
{
data=aa[i];
aa[i]=aa[j];
aa[j]=data;
}
else if(aa[i]%A000==aa[j]%A000 /*如果后C位数值相等,则对这些数值按原始D位数据
进行降序排列* /
if(aa[i]<aa[j])
{
data=aa[i];
aa[i]=aa[j];
aa[j]=data;
}
}
for(i=0;i<A0;i++) /*将排好序的前十个数存入数组bb中*/
bb[i]=aa[i];
}
解析: 本题考查的知识点如下:
(1) 循环结构的嵌套。
(2) 选择结构的嵌套。
(3) 特殊运算符“%”的使用。
(4)数据的升降序排列。
在该题中,首先要解决的问题是如何把题中4位数转换成符合要求的3位数。这里要用到一个比较特殊的运算符%,它的功能是取余。将4位数除以1000取余则得到要求的3位数。根据题意,若后3位相等,则按照原数据进行降序排序,所以在这里要加一个选择结构进行判断。对数据进行排序,可以使用最简单的“选择排序法”。即第一次从第一个数据开始和所有后面的数据进行比较,与比它大(小)的数据交换位置,将数据中最大(小)的数交换到最前面。第二次从第二个数据开始与后面的数据进行比较,将此次比较中最(小)的数据交换至第二个位置,直至最后一个数据。