题目28(整数各位数运算题)
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。
jsValue()
{int i,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000; hun=a[i]00/100;
ten=a[i]0/10; data=a[i];
if(thou+hun==ten+data) {cnt++;pjz1+=a[i];}
else {n++;pjz2+=a[i];}
}
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if(n==0) pjz2=0;
else pjz2/=n;
}
☆题目29(整数各位运算统计题)
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。
例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。
jsValue()
{ int i,gw,sw,bw,qw,cnt2=0;www.examw.com
for(i=0;i<300;i++)
{gw=a[i]; sw=a[i]/10;
bw=a[i]/100; qw=a[i]/1000;
if((qw+gw)==(sw+bw)) { cnt++;pjz1+=a[i]; }
else { cnt2++;pjz2+=a[i]; }
}
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if(cnt2==0) pjz2=0;
else pjz2/=cnt2;
}
☆题目30
请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m)
{
int i;
for(i=2;i if(m % i==0)return 0; return 1; } void num(int m,int k,int xx[]) { int s=0; for(m=m+1;k>0;m++) if(isP(m)) { xx[s++]=m; k--;} }题目31 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal() { int i,j,qw,bw,sw,gw; for(i=0;i { qw=a[i]/1000; bw=a[i]/100; sw=a[i]0/10; gw=a[i]; if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i]; } for(i=0;i for(j=i+1;j if(b[i] } ★☆题目32(整数各位打散组合运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal()www.ExamW.CoM {int i,j,thou,hun,ten,data,ab,cd; for(i=0;i<200;i++) {thou=a[i]/1000; hun=a[i]00/100; ten=a[i]0/10; data=a[i]; ab=10*thou+ten; cd=10*data+hun; if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10) b[cnt++]=a[i]; } for(i=0;i for(j=i+1;j if(b[i] }