if(b[i]>b[j]){flag=b[i];b[i]=b[j];b[j]=flag;}
}
****************************************************************************
题目5(整数运算排序题)
在文件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;i<200;i++)
if(aa[i].x2>aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];
for(i=0;ifor(j=i+1;jif(bb[i].x2+bb[i].x3returncnt;
}
************************************************************************
★题目6(整数各位统计排序题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。
voidjsVal()
{inti,j,thou,hun,ten,data;
for(i=0;i{thou=a[i]/1000;hun=a[i]/100%10;
ten=a[i]%100/10;data=a[i]%10;
if(thou>=hun&&hun>=ten&&ten>=data&&a[i]%2)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){thou=b[i];b[i]=b[j];b[j]=thou;}
}
***********************************************************************
题目7(整数统计排序题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
voidjsVal()
{
inti,j,gw,sw,bw,qw;
for(i=0;i{gw=a[i]%10;sw=a[i]/10%10;
bw=a[i]/100%10;qw=a[i]/1000;
if((qw+gw)==(sw+bw)&&a[i]%2)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
*************************************************************************
★题目8(整数排序题)
下列程序的功能是:
将一正整数序列{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;i<10;i++)
{val=a[i][0];
for(j=0;j<9;j++)
if(a[i][j]{num=a[i][j];
for(k=j;k>0;k--)
a[i][k]=a[i][k-1];
a[i][0]=num;
}
}
}
*******************************************************************************
★题目9(整数各位数字运算排序题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
voidjsVal()
{inti,j;
intqw,bw,sw,gw;
for(i=0;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;ifor(j=i+1;jif(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
***************************************************************************
题目10(整数各位数运算排序题)
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:
7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+1<>2+9,则该数不满足条件忽略。
jsValue()
{inti,j,qw,bw,sw,gw;
for(i=0;i<300;i++)
{qw=a[i]/1000;bw=a[i]/100%10;
sw=a[i]%100/10;gw=a[i]%10;
if(qw+bw==sw+gw)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
**************************************************************************
★☆题目11(整数各位数运算及排序题)
在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。
函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:
要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到
文件out.dat中。
intjsSort()
{inti,j,cnt=0;
dataxy;
for(i=0;i<200;i++)
if(aa[i].x1>(aa[i].x2+aa[i].x3))bb[cnt++]=aa[i];
for(i=0;ifor(j=i+1;jif(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3){xy=bb[i];bb[i]=bb[j];bb[j]=xy;}
returncnt;
}
*************************************************************************
整数统计运算题
★☆题目12整数统计运算题)
已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
voidCalValue(void)
{inti,data;
for(i=0;iif(xx[i]>0)
{totNum++;
data=xx[i]>>1;
if(data%2==0){totCnt++;totPjz+=xx[i];}
}
if(totCnt==0)totPjz=0;
elsetotPjz/=totCnt;
}
*************************************************************************
☆题目13(整数统计运算题)
已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这文件中共有多少个正整数totNum;
2、求这些数中的各位数字之和是偶数的数的个数totCnt,
以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
voidCalValue(void)
{inti,qw,bw,sw,gw;
for(i=0;iif(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;
}
**************************************************************************
☆题目14(整数统计运算题)
已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这文件中共有多少个正整数totNum;2、求这些数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
voidCalValue(void)
{inti,qw,bw,sw,gw;
for(i=0;iif(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){totCnt++;totPjz+=xx[i];}
}
if(totCnt==0)totPjz=0;
elsetotPjz/=totCnt;
}
**************************************************************************
题目15(整数统计运算题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件prog1.c中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
voidjsVal()
{inti,j,thou,hun,ten,data;
for(i=0;i<200;i++)
{thou=a[i]/1000;hun=a[i]%1000/100;
ten=a[i]%100/10;data=a[i]%10;
if(thou-hun-ten-data>=0&&a[i]%2)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){thou=b[i];b[i]=b[j];b[j]=thou;}
}
**********************************************************************
题目16(整数统计运算题)
已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
voidCalValue(void)
{inti,data;
for(i=0;iif(xx[i]>0)
{totNum++;
data=xx[i]>>1;
if(data%2){totCnt++;totPjz+=xx[i];}
}
if(totCnt==0)totPjz=0;
elsetotPjz/=totCnt;
}
*********************************************************************
题目17(整数统计运算题)
请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。
sum=0;pj=0.0;cnt1=cnt2=0;
for(i=0;i{if(xx[i]%2)cnt1++;
elsecnt2++;
if(i%2==0){pj+=xx[i];sum++;}
}
pj/=sum;
*******************************************************************************
☆题目18(整数统计运算题)
请编制程序prog1.c,从文件IN.DAT中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。
cnt=0;max=xx[0];pj=0.0;n=0;
for(m=0;mif(maxfor(m=0;m{if(xx[m]==max)cnt++;