1、在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前60125099901270258088处理后90126012702580885099voidjsSort()inti,j,m;for(i=0;i199;i++)for(j=i+1;j200;j++)if(aa[i]%1000aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]aa[j])m=aa[i];aa[i]=aa[j];aa[j]=m;for(i=0;i10;i++)bb[i]=aa[i];2、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。inti,j,temp;for(i=0;imax-5;i++)if((a[i]%2==0)&&a[i]a[i+1]&&a[i]a[i+2]&&a[i]a[i+3]&&a[i]a[i+4]&&a[i]a[i+5])b[cnt++]=a[i];}for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){temp=b[j];b[j]=b[i];b[i]=temp;}3、在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。intjsSort(){inti,j,cnt=0;datach;for(i=0;i200;i++)if(aa[i].x2aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(bb[i].x2+bb[i].x3bb[j].x2+bb[j].x3){ch=bb[i];bb[i]=bb[j];bb[j]=ch;}returncnt;4、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。voidjsVal(){inti,j,qw,bw,sw,gw;for(i=0;iMAX;i++){qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if(qw=bw&&bw=sw&&sw=gw&&a[i]%2)b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}5、下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。例:序列{6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}jsValue(inta[10][9]){inti,j,k,val,num;for(i=0;i10;i++){val=a[i][0];for(j=0;j9;j++)if(a[i][j]val){num=a[i][j];for(k=j;k0;k--)a[i][k]=a[i][k-1];a[i][0]=num;6、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。voidjsVal(){inti,j;intqw,bw,sw,gw;for(i=0;iMAX;i++){qw=a[i]/1000;bw=a[i]%1000/100;sw=a[i]%100/10;gw=a[i]%10;if((qw=bw)&&(bw=sw)&&(sw=gw)&&(a[i]%2==0))b[cnt++]=a[i];for(i=0;icnt-1;i++)for(j=i+1;jcnt;j++)if(b[i]b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}7、在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到文件out.dat中。intjsSort(){inti,j,count=0;datacc;for(i=0;i200;i++)if(aa[i].x1(aa[i].x2+aa[i].x3))memcpy((data*)&bb[count++],(data*)&aa[i],sizeof(data));for(i=0;icount-1;i++)for(j=i+1;jcount;j++)if(bb[i].x1+bb[i].x3bb[j].x1+bb[j].x3){memcpy((data*)&cc],(data*)&bb[i],sizeof(data));memcpy((data*)&bb[i],(data*)&bb[j],sizeof(data));memcpy((data*)&bb[j],(data*)&cc,sizeof(data));returncount;8、已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位二进制后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。voidCalValue(void){inti,j;longhe=0;for(i=0;iMAXNUM;i++)if(xx[i])totNum++;for(i=0;itotNum;i++)j=(xx[i]1);if(j%2==0){totCnt++;he+=xx[i];}totPjz=(double)he/totCnt;9、已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。voidCalValue(void){inti,qw,bw,sw,gw;for(i=0;iMAXNUM;i++)if(xx[i]0){totNum++;qw=xx[i]/1000;bw=xx[i]/100%10;sw=xx[i]%100/10;gw=xx[i]%10;if((qw+bw+sw+gw)%2==0){totCnt++;totPjz+=xx[i];}if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;10、已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。voidCalValue(void){inti,data;for(i=0;iMAXNUM;i++)if(xx[i]0){totNum++;data=xx[i]1;if(data%2){totCnt++;totPjz+=xx[i];}if(totCnt==0)totPjz=0;elsetotPjz/=totCnt;11、请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。inti,cnt1=0,cnt2=0;pj=0;for(i=0;iN;i++){if(xx[i]%2)cnt1++;elsecnt2++;if(i%2==0){pj+=xx[i];pj/=100;12、200个整数读至数组xx中,求出数组xx中的最大数max及最大数的个数cnt和数组xx中的元素值能被3整除或能被7整除的所有数的算术平均值pj。inti,cnt1=0;max=0;cnt=0;pj=0.0;for(i=0;iN;i++){if((xx[i]%7)==0||(xx[i]%3)==0){pj+=xx[i];cnt1++;}if(xx[i]max){max=xx[i];cnt=1;}elseif(xx[i]==max)cnt++;}pj/=(float)cnt1;}13、请编制程序prog1.c,从文件in.dat中读取200个整