已知数据文件IN.DAT中存有300个五位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函
已知数据文件IN.DAT中存有300个五位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出满足以下条件的数的个数cnt、所有满足此条件的数的平均值pjz1,以及不满足此条件的数的平均值pjz2,最后调用写函数把结果输出到 out.dat文件。
条件:将五位数的万位、百位、个位数字重组成一个三位数a,将五位数的千位、十位数字重组成一个两位数b,前一个数a能被后一个数b整除。
例如:24360满足条件(230能被46整除);38129不满足条件(319不能被82整除)。
部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz1。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
include <stdio.h>
int a[300],cnt=0;
double pjzl-0.0,pjz2=0.0;
jsValue()
{
}
main()
{
int i;
readDat();
jsValue();
writeDat();
printf ("cnt=%d\n 满足条件的平均值 pzj1=%7.21 f\n不满足条件的平均值
pjz2=%7.21f\n" ,cnt,pjz1,pjz2);
}
readDat ( )
{
FILE *fp;
int i;
fp=fopen(" in.dar" ," r");
for(i=0,i<300;i++) fscanf(fp,"%d" ,&a[i]);
fclose(fp);
{
writeDat()
{
FILE *fp;
int i;
fp=fopen(" out.dar" ," w" );
fprintf(fp," %d\n%7.21f\n%7.21f\n" ,cnt,pjz1,pjz2);
fclose(fp);
}
jsValue() { int i,g,s,b,q,w,k=0,n1,n2; for(i=O;i300;i++){ /*取出各位数字*/ g=a[i]%10; s=a[i]%100/10; b=a[i]/100%10; q=a[i]/1000%10; w=a[i]/lO000; /*重组新数*/ n1=w*100+b*10+g; n2=q*10+s; /*判断条件*/ if(n1%n2==0) {cet++;pjz1+-a[i];} else {k++;pjz2+=a[i];} } /*计算平均值*/ pjz1/=cnt; pjz2/=k; } 解析:类型:数字统计,数字打散运算。
关键:取出一个数的各位数字,以及将各位数字重组成新的数。a[i]%10对10求余结果为个位数,a[i]%100/10先对100求余得出后两位数然后再除10,由于为整数,因此得出后两位数的第一位。依此类推。
算法高二学的程序把K进制位数为N的数字A的右数第I位数字化为十进制数Binputa,k,nb=oi 数学 2020-06-10 …
利用如图甲所示电路测量电池组的电动势E和内阻r.根据实验数据绘出1/I-R图线如图乙所示,其中R为 其他 2020-06-25 …
BelieveB后面的e和l后面的i模糊了.Believe:[bi'li:v]问题1“第二个字母e 其他 2020-06-28 …
Believe第二个字母e为什么读i第四个字母i为什么读i:Believe:[bi'li:v]问题 英语 2020-06-28 …
利用如图1所示电路可测量电池组的电动势E和内电阻r.根据实验数据绘出如图2所示的R-1/I图线,其 物理 2020-07-11 …
利用如图1所示电路可测量电池组的电动势E和内电阻r.根据实验数据绘出如图2所示的R-1/I图线,其 其他 2020-07-11 …
如图是将二进制数111111(2)化为十进制数的程序框图,判断框内填入条件是()A.i>5B.i>6 其他 2020-10-30 …
(2009•泰安一模)下图是把二进制的数11111(2)化成十进制数的-个程序框图,则判断框内应填入 其他 2020-11-13 …
在如图所示的电路中,R1、R2为定值电阻,R3为可变电阻,电源的电动势为E,内阻为r.设电流表A的读 物理 2020-12-31 …
如图是将二进制数11111(2)化为十进制数的一个程序框图,判断框内应填入的条件是()A.i≤5B. 其他 2021-01-15 …