首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1
已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1
admin
2010-09-05
60
问题
已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数的平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。
例如:6712,6+2=7+1,则该数满足条件,计算平均值Ave1,且个数count=count+1。8129, 8+9!=1+2,则该数不满足条件,计算平均值Ave2。
注意:部分源程序已经给出。程序中已定义数组a[300],已定义变量count、Ave1、Ave2。请勿改动主函数main()、读函数Rdata()和写函数Wdata()的内容。
#include <stdio. h>
int a[300], count = 0;
double Ave1 = 0.0, Ave2 = 0.0;
void NumCal ()
{
}
void Rdata()
{ FILE *fp;
int i;
fp = fopen("IN. dat", "r");
for (i=0; i<300; i++)
fscanf( fp, "%d,", &a
;
fclose (fp);
}
void Wdata ()
{ FILE *fp;
fp = fopen("OUT. dat", "w");
fprintf(fp, "%d\n%7.2f\n%7.2f\n", count, Ave1, Ave2);
fclose (fp);
}
main ()
{ Rdata ();
NumCal ( );
Wdata ();
printf ("count=%d\n 满足条件的平均值 Ave1=%7.2f\n 不满足条件的平均值Ave2=%7.2f\n", count, Ave1, Ave2);
}
选项
答案
void NumCal() { int i, n = 0, thou, hun, ten, data; for (i=0; i<300; i++) { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if (thou+ data == hun+ ten) { count++; Ave1 += a[i]; } else { n++; Ave2 += a[i]; } } Ave1 /= count; Ave2 /= n; } [解题思路] 对于每一个四位数,用这个四位数除以1000,可得到这个四位数千位上的数字输给变量thou;这个四位数对1000求余数然后再除以100,可得到这个四位数百位上的数字输给变量hun;这个四位数对100求余数然后再除以10,可得到这个四位数十位上的数字输给变量ten;这个四位数对10求余数,可得到这个四位数个位上的数字输给变量data。 然后判断表达式thou+ data==hun+ ten是否成立,如果成立,则计数变量count加1,同时把这个数加到变量Ave1上;否则计数变量n加1,同时把这个数加到变量Ave2上。循环结束后,变量Ave1的值除以count,就得到所有满足此条件的四位数的平均值Ave1;变量 Ave2的值除以n,就得到有不满足此条件的四位数的平均值Ave2。
解析
转载请注明原文地址:https://kaotiyun.com/show/uuvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
下列关于部分函数依赖的叙述中,哪一条是正确的?,
事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映,这是事务的哪一个特性?
一个SQL语句原则上可产生或处理一组记录,而主语句一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用_____机制来解决的。
对n个元素的序列采用冒泡排序的方法,最少的比较次数为______。
对线性表进行二分法查找,其前提条件是______。
数据库管理系统管理并且控制_____资源的使用。
下面所列的条目中:Ⅰ.语法检查Ⅱ.语义检查Ⅲ.用户存取权限检查Ⅳ.数据完整性检查当用户发出查询数据库数据的命令时,数据库管理系统需要进行的检查是______。
______是对计算机系统中所存放的大量数据进行组织、管理、查询并提供一定处理功能的大型系统软件。
下面关于B和B+树的叙述中,不正确的是______。
随机试题
客户拖欠货款的原因大致可概括为两类:无力偿付和______。
黄女士,68岁,患慢性肺心病近8年。近日咳嗽、咳痰加重,发绀明显。给予半坐卧位的主要目的是
下列关于证券交易暂停和终止情形的说法中,错误的是()。
甲公司2016年以前执行《小企业会计准则》,由于甲公司公开发行股票、债券,同时因经营规模和企业性质变化而成为大中型企业,按照准则规定应当从2016年1月1日起转为执行《企业会计准则》。资料如下:甲公司2013年分别以450万元和110万元的价格从股票
根据税收征收管理法律制度的规定,税务代理人违反法律法规,除由纳税人缴纳或者补缴应纳税款、滞纳金外,还要对税务代理人处一定数额的罚款。其罚款数额是()。
下列文种中属于陈述性的上行公文是()。
下列表述属于法律规则的是()。
Duringthesummersessiontherewillbearevisedscheduleofservicesfortheuniversitycommunity.Specificchangesforinterc
下列程序段执行以后,内存变量X和Y的值是()。CLEARSTORE3TOXSTORE5TOYPLUS((X),Y)?X,YPROCEDUREPLUSPARAMETERSA1,A
E-R数据模型一般在数据库设计的______阶段使用。
最新回复
(
0
)